| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 "platform/globals.h" | 5 #include "platform/globals.h" |
| 6 #if defined(TARGET_OS_WINDOWS) | 6 #if defined(TARGET_OS_WINDOWS) |
| 7 | 7 |
| 8 #include "bin/eventhandler.h" | 8 #include "bin/eventhandler.h" |
| 9 | 9 |
| 10 #include <winsock2.h> // NOLINT | 10 #include <winsock2.h> // NOLINT |
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 708 | 708 |
| 709 void StdHandle::DoClose() { | 709 void StdHandle::DoClose() { |
| 710 MonitorLocker locker(write_monitor_); | 710 MonitorLocker locker(write_monitor_); |
| 711 if (write_thread_exists_) { | 711 if (write_thread_exists_) { |
| 712 write_thread_running_ = false; | 712 write_thread_running_ = false; |
| 713 locker.Notify(); | 713 locker.Notify(); |
| 714 while (write_thread_exists_) { | 714 while (write_thread_exists_) { |
| 715 locker.Wait(Monitor::kNoTimeout); | 715 locker.Wait(Monitor::kNoTimeout); |
| 716 } | 716 } |
| 717 } | 717 } |
| 718 if (handle_ == GetStdHandle(STD_OUTPUT_HANDLE)) { | 718 Handle::DoClose(); |
| 719 int fd = _open("NUL", _O_WRONLY); | |
| 720 ASSERT(fd >= 0); | |
| 721 _dup2(fd, _fileno(stdout)); | |
| 722 close(fd); | |
| 723 } else { | |
| 724 Handle::DoClose(); | |
| 725 } | |
| 726 } | 719 } |
| 727 | 720 |
| 728 | 721 |
| 729 bool ClientSocket::LoadDisconnectEx() { | 722 bool ClientSocket::LoadDisconnectEx() { |
| 730 // Load the DisconnectEx function into memory using WSAIoctl. | 723 // Load the DisconnectEx function into memory using WSAIoctl. |
| 731 GUID guid_disconnect_ex = WSAID_DISCONNECTEX; | 724 GUID guid_disconnect_ex = WSAID_DISCONNECTEX; |
| 732 DWORD bytes; | 725 DWORD bytes; |
| 733 int status = WSAIoctl(socket(), | 726 int status = WSAIoctl(socket(), |
| 734 SIO_GET_EXTENSION_FUNCTION_POINTER, | 727 SIO_GET_EXTENSION_FUNCTION_POINTER, |
| 735 &guid_disconnect_ex, | 728 &guid_disconnect_ex, |
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1309 | 1302 |
| 1310 | 1303 |
| 1311 void EventHandlerImplementation::Shutdown() { | 1304 void EventHandlerImplementation::Shutdown() { |
| 1312 SendData(kShutdownId, 0, 0); | 1305 SendData(kShutdownId, 0, 0); |
| 1313 } | 1306 } |
| 1314 | 1307 |
| 1315 } // namespace bin | 1308 } // namespace bin |
| 1316 } // namespace dart | 1309 } // namespace dart |
| 1317 | 1310 |
| 1318 #endif // defined(TARGET_OS_WINDOWS) | 1311 #endif // defined(TARGET_OS_WINDOWS) |
| OLD | NEW |