Hi Hal,
In revision 3526 you've added a patch that opensm will not handle SIGINT.
This patch is an addition to that patch. If OpenSM doesn't handle SIGINT,
then none of its threads should handle it either.
Yael


-----Original Message-----
From: Hal Rosenstock [mailto:[EMAIL PROTECTED]
Sent: Monday, January 09, 2006 4:56 PM
To: Yael Kalka
Cc: openib-general@openib.org; Eitan Zahavi
Subject: Re: Re[PATCH] Opensm - clean exit on ^C


Hi Yael,

On Thu, 2006-01-05 at 07:16, Yael Kalka wrote:
> 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.

Is there one other piece to this ? Doesn't osm_opensm.c need to be
modified to handle SIGINT for OSM_VENDOR_INTF_OPENIB ? Thanks.

void
osm_reg_sig_handler(
   IN osm_opensm_t * const p_osm )
{
   __p_osm_to_signal = p_osm;
#ifndef OSM_VENDOR_INTF_OPENIB 
   cl_reg_sig_hdl( SIGINT, __sig_handler );
#endif

-- Hal


> 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