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 |