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