| 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 <errno.h> | 5 #include <errno.h> |
| 6 #include <stdio.h> | 6 #include <stdio.h> |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 #include <sys/epoll.h> | 8 #include <sys/epoll.h> |
| 9 | 9 |
| 10 #include "bin/dbg_connection.h" | 10 #include "bin/dbg_connection.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 FATAL("Cannot connect to more than one debugger.\n"); | 21 FATAL("Cannot connect to more than one debugger.\n"); |
| 22 } | 22 } |
| 23 int fd = ServerSocket::Accept(event->data.fd); | 23 int fd = ServerSocket::Accept(event->data.fd); |
| 24 if (fd < 0) { | 24 if (fd < 0) { |
| 25 FATAL("Accepting new debugger connection failed.\n"); | 25 FATAL("Accepting new debugger connection failed.\n"); |
| 26 } | 26 } |
| 27 FDUtils::SetBlocking(fd); | 27 FDUtils::SetBlocking(fd); |
| 28 DebuggerConnectionHandler::AcceptDbgConnection(fd); | 28 DebuggerConnectionHandler::AcceptDbgConnection(fd); |
| 29 // TODO(hausner): add the debugger wire socket fd to the event poll queue | 29 // TODO(hausner): add the debugger wire socket fd to the event poll queue |
| 30 // once we poll the debugger connection. | 30 // once we poll the debugger connection. |
| 31 } else if (event->data.fd == DebuggerConnectionHandler::debugger_fd_) { | 31 } else if (event->data.fd == wakeup_fds_[0]) { |
| 32 printf("unexpected: receiving debugger connection event.\n"); | 32 // Sync message. Not yet implemented. |
| 33 UNIMPLEMENTED(); | 33 UNIMPLEMENTED(); |
| 34 } else { | 34 } else { |
| 35 // Sync message. Not yet implemented. | 35 printf("unexpected: receiving debugger connection event.\n"); |
| 36 UNIMPLEMENTED(); | 36 UNIMPLEMENTED(); |
| 37 } | 37 } |
| 38 } | 38 } |
| 39 | 39 |
| 40 | 40 |
| 41 void DebuggerConnectionImpl::Handler(uword args) { | 41 void DebuggerConnectionImpl::Handler(uword args) { |
| 42 static const intptr_t kMaxEvents = 4; | 42 static const intptr_t kMaxEvents = 4; |
| 43 struct epoll_event events[kMaxEvents]; | 43 struct epoll_event events[kMaxEvents]; |
| 44 while (1) { | 44 while (1) { |
| 45 const int no_timeout = -1; | 45 const int no_timeout = -1; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 | 95 |
| 96 | 96 |
| 97 void DebuggerConnectionImpl::StartHandler(int port_number) { | 97 void DebuggerConnectionImpl::StartHandler(int port_number) { |
| 98 ASSERT(DebuggerConnectionHandler::listener_fd_ != -1); | 98 ASSERT(DebuggerConnectionHandler::listener_fd_ != -1); |
| 99 SetupPollQueue(); | 99 SetupPollQueue(); |
| 100 int result = dart::Thread::Start(&DebuggerConnectionImpl::Handler, 0); | 100 int result = dart::Thread::Start(&DebuggerConnectionImpl::Handler, 0); |
| 101 if (result != 0) { | 101 if (result != 0) { |
| 102 FATAL1("Failed to start debugger connection handler thread: %d\n", result); | 102 FATAL1("Failed to start debugger connection handler thread: %d\n", result); |
| 103 } | 103 } |
| 104 } | 104 } |
| OLD | NEW |