| Index: runtime/bin/eventhandler_win.cc
|
| diff --git a/runtime/bin/eventhandler_win.cc b/runtime/bin/eventhandler_win.cc
|
| index 43a686d8536e7bbcc7d23afebd0df0262843834d..9aeda580a30e9cba7d450c3d810658ad7a5082fa 100644
|
| --- a/runtime/bin/eventhandler_win.cc
|
| +++ b/runtime/bin/eventhandler_win.cc
|
| @@ -40,18 +40,15 @@ OverlappedBuffer* OverlappedBuffer::AllocateBuffer(int buffer_size,
|
| return buffer;
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateAcceptBuffer(int buffer_size) {
|
| OverlappedBuffer* buffer = AllocateBuffer(buffer_size, kAccept);
|
| return buffer;
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateReadBuffer(int buffer_size) {
|
| return AllocateBuffer(buffer_size, kRead);
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateRecvFromBuffer(int buffer_size) {
|
| // For calling recvfrom additional buffer space is needed for the source
|
| // address information.
|
| @@ -59,39 +56,32 @@ OverlappedBuffer* OverlappedBuffer::AllocateRecvFromBuffer(int buffer_size) {
|
| return AllocateBuffer(buffer_size, kRecvFrom);
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateWriteBuffer(int buffer_size) {
|
| return AllocateBuffer(buffer_size, kWrite);
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateSendToBuffer(int buffer_size) {
|
| return AllocateBuffer(buffer_size, kSendTo);
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateDisconnectBuffer() {
|
| return AllocateBuffer(0, kDisconnect);
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::AllocateConnectBuffer() {
|
| return AllocateBuffer(0, kConnect);
|
| }
|
|
|
| -
|
| void OverlappedBuffer::DisposeBuffer(OverlappedBuffer* buffer) {
|
| delete buffer;
|
| }
|
|
|
| -
|
| OverlappedBuffer* OverlappedBuffer::GetFromOverlapped(OVERLAPPED* overlapped) {
|
| OverlappedBuffer* buffer =
|
| CONTAINING_RECORD(overlapped, OverlappedBuffer, overlapped_);
|
| return buffer;
|
| }
|
|
|
| -
|
| int OverlappedBuffer::Read(void* buffer, int num_bytes) {
|
| if (num_bytes > GetRemainingLength()) {
|
| num_bytes = GetRemainingLength();
|
| @@ -101,7 +91,6 @@ int OverlappedBuffer::Read(void* buffer, int num_bytes) {
|
| return num_bytes;
|
| }
|
|
|
| -
|
| int OverlappedBuffer::Write(const void* buffer, int num_bytes) {
|
| ASSERT(num_bytes == buflen_);
|
| memmove(GetBufferStart(), buffer, num_bytes);
|
| @@ -109,13 +98,11 @@ int OverlappedBuffer::Write(const void* buffer, int num_bytes) {
|
| return num_bytes;
|
| }
|
|
|
| -
|
| int OverlappedBuffer::GetRemainingLength() {
|
| ASSERT(operation_ == kRead || operation_ == kRecvFrom);
|
| return data_length_ - index_;
|
| }
|
|
|
| -
|
| Handle::Handle(intptr_t handle)
|
| : ReferenceCounted(),
|
| DescriptorInfoBase(handle),
|
| @@ -133,12 +120,10 @@ Handle::Handle(intptr_t handle)
|
| read_thread_finished_(false),
|
| monitor_(new Monitor()) {}
|
|
|
| -
|
| Handle::~Handle() {
|
| delete monitor_;
|
| }
|
|
|
| -
|
| bool Handle::CreateCompletionPort(HANDLE completion_port) {
|
| ASSERT(completion_port_ == INVALID_HANDLE_VALUE);
|
| // A reference to the Handle is Retained by the IO completion port.
|
| @@ -149,7 +134,6 @@ bool Handle::CreateCompletionPort(HANDLE completion_port) {
|
| return (completion_port_ != NULL);
|
| }
|
|
|
| -
|
| void Handle::Close() {
|
| MonitorLocker ml(monitor_);
|
| if (!SupportsOverlappedIO()) {
|
| @@ -176,7 +160,6 @@ void Handle::Close() {
|
| ASSERT(IsHandleClosed());
|
| }
|
|
|
| -
|
| void Handle::DoClose() {
|
| if (!IsHandleClosed()) {
|
| CloseHandle(handle_);
|
| @@ -184,19 +167,16 @@ void Handle::DoClose() {
|
| }
|
| }
|
|
|
| -
|
| bool Handle::HasPendingRead() {
|
| MonitorLocker ml(monitor_);
|
| return pending_read_ != NULL;
|
| }
|
|
|
| -
|
| bool Handle::HasPendingWrite() {
|
| MonitorLocker ml(monitor_);
|
| return pending_write_ != NULL;
|
| }
|
|
|
| -
|
| void Handle::WaitForReadThreadStarted() {
|
| MonitorLocker ml(monitor_);
|
| while (read_thread_starting_) {
|
| @@ -204,7 +184,6 @@ void Handle::WaitForReadThreadStarted() {
|
| }
|
| }
|
|
|
| -
|
| void Handle::WaitForReadThreadFinished() {
|
| HANDLE to_join = NULL;
|
| {
|
| @@ -227,7 +206,6 @@ void Handle::WaitForReadThreadFinished() {
|
| }
|
| }
|
|
|
| -
|
| void Handle::ReadComplete(OverlappedBuffer* buffer) {
|
| WaitForReadThreadStarted();
|
| {
|
| @@ -245,12 +223,10 @@ void Handle::ReadComplete(OverlappedBuffer* buffer) {
|
| WaitForReadThreadFinished();
|
| }
|
|
|
| -
|
| void Handle::RecvFromComplete(OverlappedBuffer* buffer) {
|
| ReadComplete(buffer);
|
| }
|
|
|
| -
|
| void Handle::WriteComplete(OverlappedBuffer* buffer) {
|
| MonitorLocker ml(monitor_);
|
| // Currently only one outstanding write at the time.
|
| @@ -259,13 +235,11 @@ void Handle::WriteComplete(OverlappedBuffer* buffer) {
|
| pending_write_ = NULL;
|
| }
|
|
|
| -
|
| static void ReadFileThread(uword args) {
|
| Handle* handle = reinterpret_cast<Handle*>(args);
|
| handle->ReadSyncCompleteAsync();
|
| }
|
|
|
| -
|
| void Handle::NotifyReadThreadStarted() {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(read_thread_starting_);
|
| @@ -276,7 +250,6 @@ void Handle::NotifyReadThreadStarted() {
|
| ml.Notify();
|
| }
|
|
|
| -
|
| void Handle::NotifyReadThreadFinished() {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(!read_thread_finished_);
|
| @@ -285,7 +258,6 @@ void Handle::NotifyReadThreadFinished() {
|
| ml.Notify();
|
| }
|
|
|
| -
|
| void Handle::ReadSyncCompleteAsync() {
|
| NotifyReadThreadStarted();
|
| ASSERT(pending_read_ != NULL);
|
| @@ -311,7 +283,6 @@ void Handle::ReadSyncCompleteAsync() {
|
| NotifyReadThreadFinished();
|
| }
|
|
|
| -
|
| bool Handle::IssueRead() {
|
| ASSERT(type_ != kListenSocket);
|
| ASSERT(pending_read_ == NULL);
|
| @@ -342,12 +313,10 @@ bool Handle::IssueRead() {
|
| }
|
| }
|
|
|
| -
|
| bool Handle::IssueRecvFrom() {
|
| return false;
|
| }
|
|
|
| -
|
| bool Handle::IssueWrite() {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(type_ != kListenSocket);
|
| @@ -369,12 +338,10 @@ bool Handle::IssueWrite() {
|
| return false;
|
| }
|
|
|
| -
|
| bool Handle::IssueSendTo(struct sockaddr* sa, socklen_t sa_len) {
|
| return false;
|
| }
|
|
|
| -
|
| static void HandleClosed(Handle* handle) {
|
| if (!handle->IsClosing()) {
|
| int event_mask = 1 << kCloseEvent;
|
| @@ -382,7 +349,6 @@ static void HandleClosed(Handle* handle) {
|
| }
|
| }
|
|
|
| -
|
| static void HandleError(Handle* handle) {
|
| handle->set_last_error(WSAGetLastError());
|
| handle->MarkError();
|
| @@ -391,7 +357,6 @@ static void HandleError(Handle* handle) {
|
| }
|
| }
|
|
|
| -
|
| void Handle::HandleIssueError() {
|
| DWORD error = GetLastError();
|
| if (error == ERROR_BROKEN_PIPE) {
|
| @@ -402,7 +367,6 @@ void Handle::HandleIssueError() {
|
| SetLastError(error);
|
| }
|
|
|
| -
|
| void FileHandle::EnsureInitialized(EventHandlerImplementation* event_handler) {
|
| MonitorLocker ml(monitor_);
|
| event_handler_ = event_handler;
|
| @@ -419,12 +383,10 @@ void FileHandle::EnsureInitialized(EventHandlerImplementation* event_handler) {
|
| }
|
| }
|
|
|
| -
|
| bool FileHandle::IsClosed() {
|
| return IsClosing() && !HasPendingRead() && !HasPendingWrite();
|
| }
|
|
|
| -
|
| void DirectoryWatchHandle::EnsureInitialized(
|
| EventHandlerImplementation* event_handler) {
|
| MonitorLocker ml(monitor_);
|
| @@ -434,12 +396,10 @@ void DirectoryWatchHandle::EnsureInitialized(
|
| }
|
| }
|
|
|
| -
|
| bool DirectoryWatchHandle::IsClosed() {
|
| return IsClosing() && (pending_read_ == NULL);
|
| }
|
|
|
| -
|
| bool DirectoryWatchHandle::IssueRead() {
|
| // It may have been started before, as we start the directory-handler when
|
| // we create it.
|
| @@ -460,7 +420,6 @@ bool DirectoryWatchHandle::IssueRead() {
|
| return false;
|
| }
|
|
|
| -
|
| void DirectoryWatchHandle::Stop() {
|
| MonitorLocker ml(monitor_);
|
| // Stop the outstanding read, so we can close the handle.
|
| @@ -473,7 +432,6 @@ void DirectoryWatchHandle::Stop() {
|
| DoClose();
|
| }
|
|
|
| -
|
| void SocketHandle::HandleIssueError() {
|
| int error = WSAGetLastError();
|
| if (error == WSAECONNRESET) {
|
| @@ -484,7 +442,6 @@ void SocketHandle::HandleIssueError() {
|
| WSASetLastError(error);
|
| }
|
|
|
| -
|
| bool ListenSocket::LoadAcceptEx() {
|
| // Load the AcceptEx function into memory using WSAIoctl.
|
| GUID guid_accept_ex = WSAID_ACCEPTEX;
|
| @@ -495,7 +452,6 @@ bool ListenSocket::LoadAcceptEx() {
|
| return (status != SOCKET_ERROR);
|
| }
|
|
|
| -
|
| bool ListenSocket::IssueAccept() {
|
| MonitorLocker ml(monitor_);
|
|
|
| @@ -530,7 +486,6 @@ bool ListenSocket::IssueAccept() {
|
| return true;
|
| }
|
|
|
| -
|
| void ListenSocket::AcceptComplete(OverlappedBuffer* buffer,
|
| HANDLE completion_port) {
|
| MonitorLocker ml(monitor_);
|
| @@ -565,7 +520,6 @@ void ListenSocket::AcceptComplete(OverlappedBuffer* buffer,
|
| OverlappedBuffer::DisposeBuffer(buffer);
|
| }
|
|
|
| -
|
| static void DeleteIfClosed(Handle* handle) {
|
| if (handle->IsClosed()) {
|
| handle->set_completion_port(INVALID_HANDLE_VALUE);
|
| @@ -578,7 +532,6 @@ static void DeleteIfClosed(Handle* handle) {
|
| }
|
| }
|
|
|
| -
|
| void ListenSocket::DoClose() {
|
| closesocket(socket());
|
| handle_ = INVALID_HANDLE_VALUE;
|
| @@ -605,13 +558,11 @@ void ListenSocket::DoClose() {
|
| AcceptEx_ = NULL;
|
| }
|
|
|
| -
|
| bool ListenSocket::CanAccept() {
|
| MonitorLocker ml(monitor_);
|
| return accepted_head_ != NULL;
|
| }
|
|
|
| -
|
| ClientSocket* ListenSocket::Accept() {
|
| MonitorLocker ml(monitor_);
|
|
|
| @@ -639,7 +590,6 @@ ClientSocket* ListenSocket::Accept() {
|
| return result;
|
| }
|
|
|
| -
|
| void ListenSocket::EnsureInitialized(
|
| EventHandlerImplementation* event_handler) {
|
| MonitorLocker ml(monitor_);
|
| @@ -652,12 +602,10 @@ void ListenSocket::EnsureInitialized(
|
| }
|
| }
|
|
|
| -
|
| bool ListenSocket::IsClosed() {
|
| return IsClosing() && !HasPendingAccept();
|
| }
|
|
|
| -
|
| intptr_t Handle::Available() {
|
| MonitorLocker ml(monitor_);
|
| if (data_ready_ == NULL) {
|
| @@ -667,7 +615,6 @@ intptr_t Handle::Available() {
|
| return data_ready_->GetRemainingLength();
|
| }
|
|
|
| -
|
| intptr_t Handle::Read(void* buffer, intptr_t num_bytes) {
|
| MonitorLocker ml(monitor_);
|
| if (data_ready_ == NULL) {
|
| @@ -685,7 +632,6 @@ intptr_t Handle::Read(void* buffer, intptr_t num_bytes) {
|
| return num_bytes;
|
| }
|
|
|
| -
|
| intptr_t Handle::RecvFrom(void* buffer,
|
| intptr_t num_bytes,
|
| struct sockaddr* sa,
|
| @@ -714,7 +660,6 @@ intptr_t Handle::RecvFrom(void* buffer,
|
| return num_bytes;
|
| }
|
|
|
| -
|
| intptr_t Handle::Write(const void* buffer, intptr_t num_bytes) {
|
| MonitorLocker ml(monitor_);
|
| if (pending_write_ != NULL) {
|
| @@ -736,7 +681,6 @@ intptr_t Handle::Write(const void* buffer, intptr_t num_bytes) {
|
| return truncated_bytes;
|
| }
|
|
|
| -
|
| intptr_t Handle::SendTo(const void* buffer,
|
| intptr_t num_bytes,
|
| struct sockaddr* sa,
|
| @@ -760,7 +704,6 @@ intptr_t Handle::SendTo(const void* buffer,
|
| return num_bytes;
|
| }
|
|
|
| -
|
| Mutex* StdHandle::stdin_mutex_ = new Mutex();
|
| StdHandle* StdHandle::stdin_ = NULL;
|
|
|
| @@ -772,13 +715,11 @@ StdHandle* StdHandle::Stdin(HANDLE handle) {
|
| return stdin_;
|
| }
|
|
|
| -
|
| static void WriteFileThread(uword args) {
|
| StdHandle* handle = reinterpret_cast<StdHandle*>(args);
|
| handle->RunWriteLoop();
|
| }
|
|
|
| -
|
| void StdHandle::RunWriteLoop() {
|
| MonitorLocker ml(monitor_);
|
| write_thread_running_ = true;
|
| @@ -799,7 +740,6 @@ void StdHandle::RunWriteLoop() {
|
| ml.Notify();
|
| }
|
|
|
| -
|
| void StdHandle::WriteSyncCompleteAsync() {
|
| ASSERT(pending_write_ != NULL);
|
|
|
| @@ -863,7 +803,6 @@ intptr_t StdHandle::Write(const void* buffer, intptr_t num_bytes) {
|
| return 0;
|
| }
|
|
|
| -
|
| void StdHandle::DoClose() {
|
| {
|
| MonitorLocker ml(monitor_);
|
| @@ -885,12 +824,10 @@ void StdHandle::DoClose() {
|
| StdHandle::stdin_ = NULL;
|
| }
|
|
|
| -
|
| #if defined(DEBUG)
|
| intptr_t ClientSocket::disconnecting_ = 0;
|
| #endif
|
|
|
| -
|
| bool ClientSocket::LoadDisconnectEx() {
|
| // Load the DisconnectEx function into memory using WSAIoctl.
|
| GUID guid_disconnect_ex = WSAID_DISCONNECTEX;
|
| @@ -902,7 +839,6 @@ bool ClientSocket::LoadDisconnectEx() {
|
| return (status != SOCKET_ERROR);
|
| }
|
|
|
| -
|
| void ClientSocket::Shutdown(int how) {
|
| int rc = shutdown(socket(), how);
|
| if (how == SD_RECEIVE) {
|
| @@ -917,7 +853,6 @@ void ClientSocket::Shutdown(int how) {
|
| }
|
| }
|
|
|
| -
|
| void ClientSocket::DoClose() {
|
| // Always do a shutdown before initiating a disconnect.
|
| shutdown(socket(), SD_BOTH);
|
| @@ -925,7 +860,6 @@ void ClientSocket::DoClose() {
|
| handle_ = INVALID_HANDLE_VALUE;
|
| }
|
|
|
| -
|
| bool ClientSocket::IssueRead() {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(completion_port_ != INVALID_HANDLE_VALUE);
|
| @@ -949,7 +883,6 @@ bool ClientSocket::IssueRead() {
|
| return false;
|
| }
|
|
|
| -
|
| bool ClientSocket::IssueWrite() {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(completion_port_ != INVALID_HANDLE_VALUE);
|
| @@ -967,7 +900,6 @@ bool ClientSocket::IssueWrite() {
|
| return false;
|
| }
|
|
|
| -
|
| void ClientSocket::IssueDisconnect() {
|
| OverlappedBuffer* buffer = OverlappedBuffer::AllocateDisconnectBuffer();
|
| BOOL ok =
|
| @@ -991,7 +923,6 @@ void ClientSocket::IssueDisconnect() {
|
| #endif
|
| }
|
|
|
| -
|
| void ClientSocket::DisconnectComplete(OverlappedBuffer* buffer) {
|
| OverlappedBuffer::DisposeBuffer(buffer);
|
| closesocket(socket());
|
| @@ -1004,7 +935,6 @@ void ClientSocket::DisconnectComplete(OverlappedBuffer* buffer) {
|
| #endif
|
| }
|
|
|
| -
|
| void ClientSocket::ConnectComplete(OverlappedBuffer* buffer) {
|
| OverlappedBuffer::DisposeBuffer(buffer);
|
| // Update socket to support full socket API, after ConnectEx completed.
|
| @@ -1020,7 +950,6 @@ void ClientSocket::ConnectComplete(OverlappedBuffer* buffer) {
|
| }
|
| }
|
|
|
| -
|
| void ClientSocket::EnsureInitialized(
|
| EventHandlerImplementation* event_handler) {
|
| MonitorLocker ml(monitor_);
|
| @@ -1031,12 +960,10 @@ void ClientSocket::EnsureInitialized(
|
| }
|
| }
|
|
|
| -
|
| bool ClientSocket::IsClosed() {
|
| return connected_ && closed_;
|
| }
|
|
|
| -
|
| bool DatagramSocket::IssueSendTo(struct sockaddr* sa, socklen_t sa_len) {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(completion_port_ != INVALID_HANDLE_VALUE);
|
| @@ -1054,7 +981,6 @@ bool DatagramSocket::IssueSendTo(struct sockaddr* sa, socklen_t sa_len) {
|
| return false;
|
| }
|
|
|
| -
|
| bool DatagramSocket::IssueRecvFrom() {
|
| MonitorLocker ml(monitor_);
|
| ASSERT(completion_port_ != INVALID_HANDLE_VALUE);
|
| @@ -1078,7 +1004,6 @@ bool DatagramSocket::IssueRecvFrom() {
|
| return false;
|
| }
|
|
|
| -
|
| void DatagramSocket::EnsureInitialized(
|
| EventHandlerImplementation* event_handler) {
|
| MonitorLocker ml(monitor_);
|
| @@ -1089,12 +1014,10 @@ void DatagramSocket::EnsureInitialized(
|
| }
|
| }
|
|
|
| -
|
| bool DatagramSocket::IsClosed() {
|
| return IsClosing() && !HasPendingRead() && !HasPendingWrite();
|
| }
|
|
|
| -
|
| void DatagramSocket::DoClose() {
|
| // Just close the socket. This will cause any queued requests to be aborted.
|
| closesocket(socket());
|
| @@ -1103,7 +1026,6 @@ void DatagramSocket::DoClose() {
|
| handle_ = INVALID_HANDLE_VALUE;
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleInterrupt(InterruptMessage* msg) {
|
| ASSERT(this != NULL);
|
| if (msg->id == kTimerId) {
|
| @@ -1224,7 +1146,6 @@ void EventHandlerImplementation::HandleInterrupt(InterruptMessage* msg) {
|
| }
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleAccept(ListenSocket* listen_socket,
|
| OverlappedBuffer* buffer) {
|
| listen_socket->AcceptComplete(buffer, completion_port_);
|
| @@ -1237,7 +1158,6 @@ void EventHandlerImplementation::HandleAccept(ListenSocket* listen_socket,
|
| DeleteIfClosed(listen_socket);
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::TryDispatchingPendingAccepts(
|
| ListenSocket* listen_socket) {
|
| if (!listen_socket->IsClosing() && listen_socket->CanAccept()) {
|
| @@ -1251,7 +1171,6 @@ void EventHandlerImplementation::TryDispatchingPendingAccepts(
|
| }
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleRead(Handle* handle,
|
| int bytes,
|
| OverlappedBuffer* buffer) {
|
| @@ -1277,7 +1196,6 @@ void EventHandlerImplementation::HandleRead(Handle* handle,
|
| DeleteIfClosed(handle);
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleRecvFrom(Handle* handle,
|
| int bytes,
|
| OverlappedBuffer* buffer) {
|
| @@ -1299,7 +1217,6 @@ void EventHandlerImplementation::HandleRecvFrom(Handle* handle,
|
| DeleteIfClosed(handle);
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleWrite(Handle* handle,
|
| int bytes,
|
| OverlappedBuffer* buffer) {
|
| @@ -1322,7 +1239,6 @@ void EventHandlerImplementation::HandleWrite(Handle* handle,
|
| DeleteIfClosed(handle);
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleDisconnect(ClientSocket* client_socket,
|
| int bytes,
|
| OverlappedBuffer* buffer) {
|
| @@ -1330,7 +1246,6 @@ void EventHandlerImplementation::HandleDisconnect(ClientSocket* client_socket,
|
| DeleteIfClosed(client_socket);
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleConnect(ClientSocket* client_socket,
|
| int bytes,
|
| OverlappedBuffer* buffer) {
|
| @@ -1344,7 +1259,6 @@ void EventHandlerImplementation::HandleConnect(ClientSocket* client_socket,
|
| DeleteIfClosed(client_socket);
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleTimeout() {
|
| if (!timeout_queue_.HasTimeout()) {
|
| return;
|
| @@ -1353,7 +1267,6 @@ void EventHandlerImplementation::HandleTimeout() {
|
| timeout_queue_.RemoveCurrent();
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleIOCompletion(DWORD bytes,
|
| ULONG_PTR key,
|
| OVERLAPPED* overlapped) {
|
| @@ -1395,7 +1308,6 @@ void EventHandlerImplementation::HandleIOCompletion(DWORD bytes,
|
| }
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::HandleCompletionOrInterrupt(
|
| BOOL ok,
|
| DWORD bytes,
|
| @@ -1433,7 +1345,6 @@ void EventHandlerImplementation::HandleCompletionOrInterrupt(
|
| }
|
| }
|
|
|
| -
|
| EventHandlerImplementation::EventHandlerImplementation() {
|
| startup_monitor_ = new Monitor();
|
| handler_thread_id_ = Thread::kInvalidThreadId;
|
| @@ -1446,7 +1357,6 @@ EventHandlerImplementation::EventHandlerImplementation() {
|
| shutdown_ = false;
|
| }
|
|
|
| -
|
| EventHandlerImplementation::~EventHandlerImplementation() {
|
| // Join the handler thread.
|
| DWORD res = WaitForSingleObject(handler_thread_handle_, INFINITE);
|
| @@ -1456,7 +1366,6 @@ EventHandlerImplementation::~EventHandlerImplementation() {
|
| CloseHandle(completion_port_);
|
| }
|
|
|
| -
|
| int64_t EventHandlerImplementation::GetTimeout() {
|
| if (!timeout_queue_.HasTimeout()) {
|
| return kInfinityTimeout;
|
| @@ -1466,7 +1375,6 @@ int64_t EventHandlerImplementation::GetTimeout() {
|
| return (millis < 0) ? 0 : millis;
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::SendData(intptr_t id,
|
| Dart_Port dart_port,
|
| int64_t data) {
|
| @@ -1481,7 +1389,6 @@ void EventHandlerImplementation::SendData(intptr_t id,
|
| }
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::EventHandlerEntry(uword args) {
|
| EventHandler* handler = reinterpret_cast<EventHandler*>(args);
|
| EventHandlerImplementation* handler_impl = &handler->delegate_;
|
| @@ -1554,7 +1461,6 @@ void EventHandlerImplementation::EventHandlerEntry(uword args) {
|
| handler->NotifyShutdownDone();
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::Start(EventHandler* handler) {
|
| int result =
|
| Thread::Start(EventHandlerEntry, reinterpret_cast<uword>(handler));
|
| @@ -1575,7 +1481,6 @@ void EventHandlerImplementation::Start(EventHandler* handler) {
|
| }
|
| }
|
|
|
| -
|
| void EventHandlerImplementation::Shutdown() {
|
| SendData(kShutdownId, 0, 0);
|
| }
|
|
|