summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-08-27 14:06:49 +1000
committer Vas Crabb <vas@vastheman.com>2021-08-27 14:06:49 +1000
commit937e416814c9fac8a02efb43ccb4cd2a12b1cf0d (patch)
tree93f2180ed4350cd8de899429582898a90c1da9f0
parent7000a5202a4d4ab649622ff29551bae4fce93087 (diff)
osd: Return would block when reading a socket with no data available - no error can be confused with remote shutdown.
-rw-r--r--src/devices/bus/coco/coco_dwsock.cpp4
-rw-r--r--src/osd/modules/file/posixsocket.cpp2
-rw-r--r--src/osd/modules/file/winsocket.cpp2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/devices/bus/coco/coco_dwsock.cpp b/src/devices/bus/coco/coco_dwsock.cpp
index a69ac57b4c4..20bce7d55d8 100644
--- a/src/devices/bus/coco/coco_dwsock.cpp
+++ b/src/devices/bus/coco/coco_dwsock.cpp
@@ -135,9 +135,9 @@ u8 beckerport_device::read(offs_t offset)
case DWS_STATUS:
if (!m_rx_pending)
{
- /* Try to read from dws */
+ // Try to read from dws
std::error_condition filerr = m_pSocket->read(m_buf, 0, sizeof(m_buf), m_rx_pending);
- if (filerr)
+ if (filerr && (std::errc::operation_would_block != filerr))
osd_printf_error("%s: coco_dwsock.c: beckerport_device::read() socket read operation failed with error %s:%d %s\n", tag(), filerr.category().name(), filerr.value(), filerr.message());
else
m_head = 0;
diff --git a/src/osd/modules/file/posixsocket.cpp b/src/osd/modules/file/posixsocket.cpp
index 4770e91c6a9..6a23e747ea1 100644
--- a/src/osd/modules/file/posixsocket.cpp
+++ b/src/osd/modules/file/posixsocket.cpp
@@ -106,7 +106,7 @@ public:
{
// no data available
actual = 0;
- return std::error_condition();
+ return std::errc::operation_would_block;
}
}
diff --git a/src/osd/modules/file/winsocket.cpp b/src/osd/modules/file/winsocket.cpp
index f818f3b1991..d04538963ea 100644
--- a/src/osd/modules/file/winsocket.cpp
+++ b/src/osd/modules/file/winsocket.cpp
@@ -103,7 +103,7 @@ public:
{
// no data available
actual = 0;
- return std::error_condition();
+ return std::errc::operation_would_block;
}
}