commit 21210b4497205453c3e03dc6168113c73839b167
parent 8cbaea4e44107b352fb923c11db08f94fba49bf4
Author: FRIGN <dev@frign.de>
Date: Thu, 27 Nov 2014 23:05:37 +0100
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:
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/ratox.c b/ratox.c
@@ -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;