| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "bin/dbg_connection.h" | 5 #include "bin/dbg_connection.h" | 
| 6 #include "bin/dbg_message.h" | 6 #include "bin/dbg_message.h" | 
| 7 #include "bin/dartutils.h" | 7 #include "bin/dartutils.h" | 
| 8 #include "bin/log.h" | 8 #include "bin/log.h" | 
| 9 #include "bin/socket.h" | 9 #include "bin/socket.h" | 
| 10 #include "bin/thread.h" | 10 #include "bin/thread.h" | 
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 287 | 287 | 
| 288   // Initialize the socket implementation. | 288   // Initialize the socket implementation. | 
| 289   if (!Socket::Initialize()) { | 289   if (!Socket::Initialize()) { | 
| 290     FATAL("Failed initializing socket implementation."); | 290     FATAL("Failed initializing socket implementation."); | 
| 291   } | 291   } | 
| 292 | 292 | 
| 293   // Now setup a listener socket and start a thread which will | 293   // Now setup a listener socket and start a thread which will | 
| 294   // listen, accept connections from debuggers, read and handle/dispatch | 294   // listen, accept connections from debuggers, read and handle/dispatch | 
| 295   // debugger commands received on these connections. | 295   // debugger commands received on these connections. | 
| 296   ASSERT(listener_fd_ == -1); | 296   ASSERT(listener_fd_ == -1); | 
| 297 | 297   listener_fd_ = ServerSocket::CreateBindListen(address, port_number, 1); | 
| 298   OSError *os_error; |  | 
| 299   SocketAddresses* addresses = Socket::LookupAddress(address, -1, &os_error); |  | 
| 300   listener_fd_ = ServerSocket::CreateBindListen( |  | 
| 301       addresses->GetAt(0)->addr(), port_number, 1); |  | 
| 302   DebuggerConnectionImpl::StartHandler(port_number); | 298   DebuggerConnectionImpl::StartHandler(port_number); | 
| 303 } | 299 } | 
| 304 | 300 | 
| 305 | 301 | 
| 306 void DebuggerConnectionHandler::WaitForConnection() { | 302 void DebuggerConnectionHandler::WaitForConnection() { | 
| 307   MonitorLocker ml(&handler_lock_); | 303   MonitorLocker ml(&handler_lock_); | 
| 308   while (!IsConnected()) { | 304   while (!IsConnected()) { | 
| 309     dart::Monitor::WaitResult res = ml.Wait(); | 305     dart::Monitor::WaitResult res = ml.Wait(); | 
| 310     ASSERT(res == dart::Monitor::kNotified); | 306     ASSERT(res == dart::Monitor::kNotified); | 
| 311   } | 307   } | 
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 439   ASSERT(singleton_handler != NULL); | 435   ASSERT(singleton_handler != NULL); | 
| 440   return singleton_handler; | 436   return singleton_handler; | 
| 441 } | 437 } | 
| 442 | 438 | 
| 443 | 439 | 
| 444 bool DebuggerConnectionHandler::IsConnected() { | 440 bool DebuggerConnectionHandler::IsConnected() { | 
| 445   // TODO(asiva): Support multiple debugger connections. | 441   // TODO(asiva): Support multiple debugger connections. | 
| 446   // Return true if a connection has been established. | 442   // Return true if a connection has been established. | 
| 447   return singleton_handler != NULL; | 443   return singleton_handler != NULL; | 
| 448 } | 444 } | 
| OLD | NEW | 
|---|