New issue
Advanced search Search tips

Issue 640088 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

Remove inter-thread synchronous function calls in WorkerWebSocketChannel

Project Member Reported by nhiroki@chromium.org, Aug 23 2016

Issue description

This should be necessary to unblock a worker thread and make sure to run
closing sequence on it before termination.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9fe7a2928edbd26896aa187deeead6b7509e3df1

commit 9fe7a2928edbd26896aa187deeead6b7509e3df1
Author: nhiroki <nhiroki@chromium.org>
Date: Wed Aug 24 06:33:51 2016

WebSocket: Consolidate inter-thread synchronous function calls

Bridge::initialize() should be merged into Bridge::connect() so that we can
reduce the number of inter-thread synchronous function calls.

BUG= 640088 

Review-Url: https://codereview.chromium.org/2270693002
Cr-Commit-Position: refs/heads/master@{#413997}

[modify] https://crrev.com/9fe7a2928edbd26896aa187deeead6b7509e3df1/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp
[modify] https://crrev.com/9fe7a2928edbd26896aa187deeead6b7509e3df1/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.h

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/70a476ad4428cd7ca9bfa0fc69fda3deff7268fb

commit 70a476ad4428cd7ca9bfa0fc69fda3deff7268fb
Author: nhiroki <nhiroki@chromium.org>
Date: Wed Aug 24 10:29:50 2016

WebSocket: Stop Bridge::disconnect() from waiting until Peer::disconnect() is complete

Bridge::disconnect() on a worker thread waited until Peer::disconnect() is
complete on the main thread to make sure that Peer never dereferences a pointer
to Bridge after disconnection. However, in the current implementation, the
pointer is CrossThreadWeakPersistent and its existence is appropriately checked
before access[1], so Bridge::disconnect() no longer have to wait until it's
nullified on Peer::disconnect().

[1] https://codereview.chromium.org/2123703002

BUG= 639153 ,  640088 

Review-Url: https://codereview.chromium.org/2271133002
Cr-Commit-Position: refs/heads/master@{#414040}

[modify] https://crrev.com/70a476ad4428cd7ca9bfa0fc69fda3deff7268fb/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp
[modify] https://crrev.com/70a476ad4428cd7ca9bfa0fc69fda3deff7268fb/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.h

Status: Fixed (was: Started)
Summary: Remove inter-thread synchronous function calls in WorkerWebSocketChannel (was: Call WebSocketChannelSyncHelper::signalWorkerThread() on Peer::contextDestroyed)
CLs on c#2,3 eliminated the reason to signal on Peer::contextDestroyed.

Sign in to add a comment