Hi Hal,

I've noticed that sometimes when killing OpenSM using ^C not all
threads are killed.
The reason for that is that there are threads that mask the
signalling, and when removing the ^C handling from OpenSM, these
threads still mask the signalling and stay alive as a result.
The following patch fixes this.

Thanks,
Yael

Signed-off-by:  Yael Kalka <[EMAIL PROTECTED]>

Index: include/complib/cl_signal_osd.h
===================================================================
--- include/complib/cl_signal_osd.h     (revision 4760)
+++ include/complib/cl_signal_osd.h     (working copy)
@@ -148,12 +148,14 @@ cl_sig_mask_sigint(void)
  #ifdef __WIN__
   /* we do not mask kill */
  #else 
+#ifndef OSM_VENDOR_INTF_OPENIB 
    sigset_t sigs;
       
    sigemptyset(&sigs);
    sigaddset(&sigs, SIGINT);
    pthread_sigmask(SIG_BLOCK, &sigs, NULL);
- #endif
+#endif /* OSM_VENDOR_INTF_OPENIB */
+#endif /* __WIN__ */
 }
 /*
 *********/
Index: libvendor/osm_vendor_ibumad.c
===================================================================
--- libvendor/osm_vendor_ibumad.c       (revision 4760)
+++ libvendor/osm_vendor_ibumad.c       (working copy)
@@ -244,10 +244,6 @@ umad_receiver(void *p_ptr)
 
        OSM_LOG_ENTER( p_ur->p_log, umad_receiver );
 
-       sigemptyset(&sigs);
-       sigaddset(&sigs, SIGINT);
-       pthread_sigmask(SIG_BLOCK, &sigs, NULL);
-
        for (;;) {
                if (!umad &&
                    !(umad = umad_alloc(1, umad_size() + MAD_BLOCK_SIZE))) {

_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to