Chromium Code Reviews| Index: chrome/test/chromedriver/net/sync_websocket_impl.cc |
| diff --git a/chrome/test/chromedriver/net/sync_websocket_impl.cc b/chrome/test/chromedriver/net/sync_websocket_impl.cc |
| index b3fcd79d82b2941b54370eae7ce5d41aaffa40f5..fdd23052124980cac006651fa30776bfb017924c 100644 |
| --- a/chrome/test/chromedriver/net/sync_websocket_impl.cc |
| +++ b/chrome/test/chromedriver/net/sync_websocket_impl.cc |
| @@ -37,7 +37,7 @@ bool SyncWebSocketImpl::HasNextMessage() { |
| SyncWebSocketImpl::Core::Core(net::URLRequestContextGetter* context_getter) |
| : context_getter_(context_getter), |
| - closed_(false), |
| + closed_(true), |
|
kkania
2013/02/22 01:35:24
if you're going to have closed_ = true on start, y
chrisgao (Use stgao instead)
2013/02/27 19:29:44
Done.
|
| on_update_event_(&lock_) {} |
| bool SyncWebSocketImpl::Core::Connect(const GURL& url) { |
| @@ -48,6 +48,10 @@ bool SyncWebSocketImpl::Core::Connect(const GURL& url) { |
| base::Bind(&SyncWebSocketImpl::Core::ConnectOnIO, |
| this, url, &success, &event)); |
| event.Wait(); |
| + if (success) { |
| + base::AutoLock lock(lock_); |
| + closed_ = false; |
|
kkania
2013/02/22 01:35:24
i think this is a race; the socket could have been
chrisgao (Use stgao instead)
2013/02/27 19:29:44
As Core::OnConnectCompletedOnIO and Core::OnClose
|
| + } |
| return success; |
| } |
| @@ -95,6 +99,8 @@ void SyncWebSocketImpl::Core::ConnectOnIO( |
| const GURL& url, |
| bool* success, |
| base::WaitableEvent* event) { |
| + base::AutoLock lock(lock_); |
| + received_queue_.clear(); |
| socket_.reset(new WebSocket(context_getter_, url, this)); |
| socket_->Connect(base::Bind( |
| &SyncWebSocketImpl::Core::OnConnectCompletedOnIO, |