From: Volker Lendecke Date: Sun, 24 Feb 2008 10:39:57 +0000 (+0100) Subject: Export aio_request_done() X-Git-Tag: samba-3.2.0pre2~37^2~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9a069d306bb6f8a2cd51b8ba87b433884942d13f;p=thirdparty%2Fsamba.git Export aio_request_done() This is for external modules implementing the Posix AIO API that not necessarily depend on the signal mechanism to indicate completion. --- diff --git a/source/smbd/aio.c b/source/smbd/aio.c index 59dd9a9568b..78189d32f78 100644 --- a/source/smbd/aio.c +++ b/source/smbd/aio.c @@ -150,12 +150,18 @@ static uint16 aio_pending_array[AIO_PENDING_SIZE]; Signal handler when an aio request completes. *****************************************************************************/ -static void signal_handler(int sig, siginfo_t *info, void *unused) +void aio_request_done(uint16_t mid) { if (signals_received < AIO_PENDING_SIZE) { - aio_pending_array[signals_received] = info->si_value.sival_int; + aio_pending_array[signals_received] = mid; signals_received++; - } /* Else signal is lost. */ + } + /* Else signal is lost. */ +} + +static void signal_handler(int sig, siginfo_t *info, void *unused) +{ + aio_request_done(info->si_value.sival_int); sys_select_signal(RT_SIGNAL_AIO); }