diff options
author | FRIGN <dev@frign.de> | 2014-11-27 23:05:37 +0100 |
---|---|---|
committer | sin <sin@2f30.org> | 2014-11-27 23:54:46 +0000 |
commit | 21210b4497205453c3e03dc6168113c73839b167 (patch) | |
tree | a367b337cfeca52f720d65d420b3aac85db7944f /ratox.c | |
parent | 8cbaea4e44107b352fb923c11db08f94fba49bf4 (diff) |
Don't lock up on blocking call_out
Since the av-refactor, we keep a call active as long as there is
a listener or a sender.
In case we don't have a listener, don't lock up in the sending
function and rather just fall-through in case the write blocks.
We can't do that as easily with the file-data-code, because data-
integrity is very important there.
Diffstat (limited to 'ratox.c')
-rw-r--r-- | ratox.c | 6 |
1 files changed, 1 insertions, 5 deletions
@@ -501,12 +501,8 @@ cbcalldata(void *av, int32_t cnum, const int16_t *data, uint16_t len, void *udat while (len > 0) { n = write(f->fd[FCALL_OUT], &buf[wrote], len); if (n < 0) { - if (errno == EPIPE) { + if (errno == EPIPE) f->av.state &= ~INCOMING; - break; - } else if (errno == EWOULDBLOCK) { - continue; - } break; } else if (n == 0) { break; |