diff options
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 |
commit | 937e416814c9fac8a02efb43ccb4cd2a12b1cf0d (patch) | |
tree | 93f2180ed4350cd8de899429582898a90c1da9f0 | |
parent | 7000a5202a4d4ab649622ff29551bae4fce93087 (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.cpp | 4 | ||||
-rw-r--r-- | src/osd/modules/file/posixsocket.cpp | 2 | ||||
-rw-r--r-- | src/osd/modules/file/winsocket.cpp | 2 |
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; } } |