From 21210b4497205453c3e03dc6168113c73839b167 Mon Sep 17 00:00:00 2001 From: FRIGN Date: Thu, 27 Nov 2014 23:05:37 +0100 Subject: 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. --- ratox.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'ratox.c') diff --git a/ratox.c b/ratox.c index 2ea83b8..4f2d704 100644 --- 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; -- cgit v1.2.3