connection: keep SYNC messages alive on EINTR
authorDavid Herrmann <dh.herrmann@gmail.com>
Thu, 23 Oct 2014 13:11:43 +0000 (15:11 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Thu, 23 Oct 2014 13:11:43 +0000 (15:11 +0200)
commitdfdedadc2caf0b0098544069f69446f0201da107
tree7978fe70f01780a16c28a57575d79babadead623
parentd343b2e9286800708229ab7e918496a2d48a0a7f
connection: keep SYNC messages alive on EINTR

If a SYNC-SEND is interrupted by a signal, there is no way we can restart
the syscall. If we returned ERESTARTSYS, we'd queue the message again on
restart. This is very irritating, therefore, we never support restarting
syscalls. Instead, we return EINPROGRESS if the message was queued but no
reply was received, yet.

Internally, we turn the 'sync' reply_wait into an 'async' reply. This way,
it will be treated the same way as any other asynchronous reply.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
connection.c
test/test-sync.c