summaryrefslogtreecommitdiffstats
path: root/lldb/source/Host/windows/PipeWindows.cpp
diff options
context:
space:
mode:
authorOleksiy Vyalov <ovyalov@google.com>2015-01-13 23:19:40 +0000
committerOleksiy Vyalov <ovyalov@google.com>2015-01-13 23:19:40 +0000
commitd5f8b6a6cadd054e42a7f0cdb1b4a16b8688cc61 (patch)
treecde68a4d0c4923f6a30eb1d793d5e59a052a3348 /lldb/source/Host/windows/PipeWindows.cpp
parent0a3bfdbd374941c053660dcdce20b778bfa5cafd (diff)
downloadbcm5719-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.cpp20
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)
{
OpenPOWER on IntegriCloud