it is possible for some of the real time signals to be used by glibc,
authorAndrew Tridgell <tridge@samba.org>
Fri, 28 Mar 2003 01:05:32 +0000 (01:05 +0000)
committerAndrew Tridgell <tridge@samba.org>
Fri, 28 Mar 2003 01:05:32 +0000 (01:05 +0000)
which then changes SIGRTMIN. It is also possible for bash to leave
some real time signals blocked at startup. This fixes both problems.
(This used to be commit 8d45bf644aecb6993c2a82b86a4527b33029ed8f)

source3/include/includes.h
source3/smbd/notify_kernel.c
source3/smbd/oplock_linux.c

index f536ea88fe527a09986297bcc6ad93aafd7c375c..09c64d896d5c0722f457c4be63f9f05ca1636854 100644 (file)
@@ -891,6 +891,10 @@ struct printjob;
 #define SIGCLD SIGCHLD
 #endif
 
+#ifndef SIGRTMIN
+#define SIGRTMIN 32
+#endif
+
 #ifndef MAP_FILE
 #define MAP_FILE 0
 #endif
index 8b7ff21ecb944e6848e677d2c127437fe43e8d4b..efe93de5afb056d35b2d7ecae739d9245ec903b2 100644 (file)
@@ -39,7 +39,7 @@ static SIG_ATOMIC_T signals_received;
 
 
 #ifndef RT_SIGNAL_NOTIFY
-#define RT_SIGNAL_NOTIFY 34
+#define RT_SIGNAL_NOTIFY (SIGRTMIN+2)
 #endif
 
 #ifndef F_SETSIG
@@ -233,6 +233,9 @@ struct cnotify_fns *kernel_notify_init(void)
        cnotify.remove_notify = kernel_remove_notify;
        cnotify.select_time = -1;
 
+       /* the signal can start off blocked due to a bug in bash */
+       BlockSignals(False, RT_SIGNAL_NOTIFY);
+
        return &cnotify;
 }
 
index deed0c51073af1d584a347004445ecb66d464662..84083dffc974f198e45ae71da4e95888f4941e7c 100644 (file)
@@ -39,7 +39,7 @@ static SIG_ATOMIC_T fd_pending_array[FD_PENDING_SIZE];
 #endif
 
 #ifndef RT_SIGNAL_LEASE
-#define RT_SIGNAL_LEASE 33
+#define RT_SIGNAL_LEASE (SIGRTMIN+1)
 #endif
 
 #ifndef F_SETSIG
@@ -296,6 +296,9 @@ struct kernel_oplocks *linux_init_kernel_oplocks(void)
        koplocks.msg_waiting = linux_oplock_msg_waiting;
        koplocks.notification_fd = -1;
 
+       /* the signal can start off blocked due to a bug in bash */
+       BlockSignals(False, RT_SIGNAL_LEASE);
+
        DEBUG(3,("Linux kernel oplocks enabled\n"));
 
        return &koplocks;