chriskohlhoff / asio

Asio C++ Library
http://think-async.com/Asio
4.72k stars 1.19k forks source link

Failures with EINTR (system : Interrupted system call) #1409

Open Dalzhim opened 5 months ago

Dalzhim commented 5 months ago

When I pause my application with the debugger during some asynchronous operations, I get occasional failures with EINTR (system : Interrupted system call). I found out that previous versions of the documentation of boost asio stated that such failures are required to never happen. But the documentation has changed and I can't find that promise in the latest releases anymore. Has it been removed on purpose? Should there still be such a requirement on asynchronous operations?

Here is the relevant quote :

Asynchronous operations will not fail with an error condition that indicates interruption by a signal (POSIX EINTR). Asynchronous operations will not fail with any error condition associated with non-blocking operations (POSIX EWOULDBLOCK, EAGAIN or EINPROGRESS; Windows WSAEWOULDBLOCK or WSAEINPROGRESS). https://think-async.com/Asio/boost_asio_1_10_6/doc/html/boost_asio/reference/asynchronous_operations.html