On Jul 18 14:37, Jon Turney wrote:
> On 17/07/2023 15:02, Corinna Vinschen wrote:
> > 
> > > We can't neatly tuck the pthread_cleanup_push/pop inside the object, as
> > > they are implemented as macros which must appear in the same lexical
> > > scope.
> > 
> > You could do it if you call the underlying functions instead.
> > pthread_cleanup_push is just a convenience macro which initializes a
> > local __pthread_cleanup_handler, see include/pthread.h.  If you add a
> > __pthread_cleanup_handler to system_call_handle, you could use it the
> > same way as the macro and encapsulate the whole thing inside the object.
> > If you want to...
> 
> Good point.
> 
> Yeah, this seems preferable as it doesn't move the point where we restore
> the signal handlers in the normal flow of execution, which might be
> important, still happening when the system_call_handle object falls out of
> scope and is destroyed.
> 
> > 
> > Fixes and Signed-off-by tags?
> > 
> 
> Done.  Revised patch attached.

Great, looks good!


Thanks,
Corinna

Reply via email to