diff options
author | Oleksiy Vyalov <ovyalov@google.com> | 2015-01-13 23:19:40 +0000 |
---|---|---|
committer | Oleksiy Vyalov <ovyalov@google.com> | 2015-01-13 23:19:40 +0000 |
commit | d5f8b6a6cadd054e42a7f0cdb1b4a16b8688cc61 (patch) | |
tree | cde68a4d0c4923f6a30eb1d793d5e59a052a3348 /lldb/source/Host/windows/PipeWindows.cpp | |
parent | 0a3bfdbd374941c053660dcdce20b778bfa5cafd (diff) | |
download | bcm5719-llvm-d5f8b6a6cadd054e42a7f0cdb1b4a16b8688cc61.tar.gz bcm5719-llvm-d5f8b6a6cadd054e42a7f0cdb1b4a16b8688cc61.zip |
Extend PipePosix with support for named pipes/timeout-based IO and integrate it with GDBRemoteCommunication / lldb-gdbserver.
http://reviews.llvm.org/D6954
llvm-svn: 225849
Diffstat (limited to 'lldb/source/Host/windows/PipeWindows.cpp')
-rw-r--r-- | lldb/source/Host/windows/PipeWindows.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lldb/source/Host/windows/PipeWindows.cpp b/lldb/source/Host/windows/PipeWindows.cpp index e49bbe026f0..ad87b9e3a2d 100644 --- a/lldb/source/Host/windows/PipeWindows.cpp +++ b/lldb/source/Host/windows/PipeWindows.cpp @@ -90,7 +90,7 @@ PipeWindows::CreateNew(llvm::StringRef name, bool child_process_inherit) } Error -PipeWindows::OpenAsReader(llvm::StringRef name, bool child_process_inherit) +PipeWindows::OpenAsReaderWithTimeout(llvm::StringRef name, bool child_process_inherit, const std::chrono::microseconds &timeout) { if (CanRead() || CanWrite()) return Error(ERROR_ALREADY_EXISTS, eErrorTypeWin32); @@ -99,7 +99,7 @@ PipeWindows::OpenAsReader(llvm::StringRef name, bool child_process_inherit) } Error -PipeWindows::OpenAsWriter(llvm::StringRef name, bool child_process_inherit) +PipeWindows::OpenAsWriterWithTimeout(llvm::StringRef name, bool child_process_inherit, const std::chrono::microseconds &timeout) { if (CanRead() || CanWrite()) return Error(ERROR_ALREADY_EXISTS, eErrorTypeWin32); @@ -217,6 +217,12 @@ PipeWindows::Close() CloseWriteEndpoint(); } +Error +PipeWindows::Delete(llvm::StringRef name) +{ + return Error(); +} + bool PipeWindows::CanRead() const { @@ -242,13 +248,7 @@ PipeWindows::GetWriteNativeHandle() } Error -PipeWindows::Read(void *buf, size_t size, size_t &bytes_read) -{ - return ReadWithTimeout(buf, size, std::chrono::milliseconds::zero(), bytes_read); -} - -Error -PipeWindows::ReadWithTimeout(void *buf, size_t size, const std::chrono::milliseconds &duration, size_t &bytes_read) +PipeWindows::ReadWithTimeout(void *buf, size_t size, const std::chrono::microseconds &duration, size_t &bytes_read) { if (!CanRead()) return Error(ERROR_INVALID_HANDLE, eErrorTypeWin32); @@ -259,7 +259,7 @@ PipeWindows::ReadWithTimeout(void *buf, size_t size, const std::chrono::millisec if (!result && GetLastError() != ERROR_IO_PENDING) return Error(::GetLastError(), eErrorTypeWin32); - DWORD timeout = (duration == std::chrono::milliseconds::zero()) ? INFINITE : duration.count(); + DWORD timeout = (duration == std::chrono::microseconds::zero()) ? INFINITE : duration.count() * 1000; DWORD wait_result = ::WaitForSingleObject(m_read_overlapped.hEvent, timeout); if (wait_result != WAIT_OBJECT_0) { |