From c9c7e241a7b68f67e0cc8a7d3874510dced532d6 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 18 Jan 2016 23:56:21 +0000 Subject: Add support for advanced closing callbacks to unixmessage_sender_flush. (Typically, this will be used for refcounting when broadcasting copies of the same fd.) --- src/libunixonacid/unixmessage_sender_flush.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/libunixonacid/unixmessage_sender_flush.c') diff --git a/src/libunixonacid/unixmessage_sender_flush.c b/src/libunixonacid/unixmessage_sender_flush.c index 75412fb..6559083 100644 --- a/src/libunixonacid/unixmessage_sender_flush.c +++ b/src/libunixonacid/unixmessage_sender_flush.c @@ -97,13 +97,13 @@ int unixmessage_sender_flush (unixmessage_sender_t *b) while (r < 0 && errno == EINTR) ; if (r <= 0) return 0 ; #ifndef SKALIBS_HASANCILAUTOCLOSE - if (nfds) + if (nfds && b->closecb) { register unsigned int i = 0 ; for (; i < nfds ; i++) { register int fd = genalloc_s(int, &b->fds)[offsets[b->head].right + i] ; - if (fd < 0) fd_close(-(fd+1)) ; + if (fd < 0) (*b->closecb)(-(fd+1), b->closecbdata) ; } } #endif -- cgit v1.2.3