On 05/08/13 20:36, Benjamin Marzinski wrote:
This patch changes how multipath's signal handlers work. Instead of having sighup and sigusr1 acquire locks and call functions directly, they now both simply set atomic variables. These two signals are blocked in child(), and all other threads inherit this sigmask. The only place in all the multipath code that doesn't block these signals is now the ppoll() call by the uxlsnr thread. When it is interrupted by a signal, the uxlsnr thread does the actual processing work. Instead of sigend using mutex locks and condition variables to tell the child() function to exit, it now uses a signal_handler safe semaphore that child() waits on and exit_daemon() increments. This patch also switches all the sigprocmask() calls to pthread_sigmask() Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx>
Thanks for addressing my comments. Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx> -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel