diff options
Diffstat (limited to 'src/libmux/queue.c')
-rw-r--r-- | src/libmux/queue.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libmux/queue.c b/src/libmux/queue.c index 1cadbe6c..2151c252 100644 --- a/src/libmux/queue.c +++ b/src/libmux/queue.c @@ -81,8 +81,8 @@ _muxqrecv(Muxqueue *q) return p; } -void* -_muxnbqrecv(Muxqueue *q) +int +_muxnbqrecv(Muxqueue *q, void **vp) { void *p; Qel *e; @@ -90,14 +90,16 @@ _muxnbqrecv(Muxqueue *q) qlock(&q->lk); if(q->head == nil){ qunlock(&q->lk); - return nil; + *vp = nil; + return q->hungup; } e = q->head; q->head = e->next; qunlock(&q->lk); p = e->p; free(e); - return p; + *vp = p; + return 1; } void |