Lines Matching refs:client
291 void GlobalSafepoint::AppendClient(Isolate* client) {
294 DCHECK_NULL(client->global_safepoint_prev_client_isolate_);
295 DCHECK_NULL(client->global_safepoint_next_client_isolate_);
296 DCHECK_NE(clients_head_, client);
299 clients_head_->global_safepoint_prev_client_isolate_ = client;
302 client->global_safepoint_prev_client_isolate_ = nullptr;
303 client->global_safepoint_next_client_isolate_ = clients_head_;
305 clients_head_ = client;
306 client->shared_isolate_ = shared_isolate_;
309 void GlobalSafepoint::RemoveClient(Isolate* client) {
310 DCHECK_EQ(client->heap()->gc_state(), Heap::TEAR_DOWN);
312 // A shared heap may have already acquired the client mutex to perform a
314 IgnoreLocalGCRequests ignore_gc_requests(client->heap());
315 ParkedMutexGuard guard(client->main_thread_local_heap(), &clients_mutex_);
317 if (client->global_safepoint_next_client_isolate_) {
318 client->global_safepoint_next_client_isolate_
320 client->global_safepoint_prev_client_isolate_;
323 if (client->global_safepoint_prev_client_isolate_) {
324 client->global_safepoint_prev_client_isolate_
326 client->global_safepoint_next_client_isolate_;
328 DCHECK_EQ(clients_head_, client);
329 clients_head_ = client->global_safepoint_next_client_isolate_;
332 client->shared_isolate_ = nullptr;
356 IterateClientIsolates([&clients, initiator](Isolate* client) {
357 clients.emplace_back(client);
358 client->heap()->safepoint()->TryInitiateGlobalSafepointScope(
370 for (PerClientSafepointData& client : clients) {
371 if (client.is_locked()) continue;
372 client.safepoint()->InitiateGlobalSafepointScope(initiator, &client);
376 for (const PerClientSafepointData& client : clients) {
377 DCHECK_EQ(client.isolate()->shared_isolate(), shared_isolate_);
378 DCHECK(client.heap()->deserialization_complete());
384 for (const PerClientSafepointData& client : clients) {
385 DCHECK(client.is_locked());
386 client.safepoint()->WaitUntilRunningThreadsInSafepoint(&client);
393 IterateClientIsolates([initiator](Isolate* client) {
394 Heap* client_heap = client->heap();