On Mon, 2018-01-15 at 12:09 +0000, Wuchongyun wrote: > Hi Martin, > Thank you for reply so quickly. Below is the new patch according to > your comments, please help to review this patch, thanks a lot~ > > [...] > */ > -static void dead_client(struct client *c) > +static void _dead_client(struct client *c) > { > - pthread_mutex_lock(&client_lock); > list_del_init(&c->node); > - pthread_mutex_unlock(&client_lock); > close(c->fd); > c->fd = -1; > FREE(c); > } You may need to use pthread_cleanup_push() here for the unlock, because close() is a cancellation point. Regards Martin -- Dr. Martin Wilck <mwilck@xxxxxxxx>, Tel. +49 (0)911 74053 2107 SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel