]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Export aio_request_done()
authorVolker Lendecke <vl@samba.org>
Sun, 24 Feb 2008 10:39:57 +0000 (11:39 +0100)
committerVolker Lendecke <vl@samba.org>
Sun, 24 Feb 2008 10:39:57 +0000 (11:39 +0100)
This is for external modules implementing the Posix AIO API that not
necessarily depend on the signal mechanism to indicate completion.

source/smbd/aio.c

index 59dd9a9568baceb1185a2b410f743cd51289409b..78189d32f78448724efcdab18d23dbdc4e4895a9 100644 (file)
@@ -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);
 }