X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=958c23e4d83c14cc748fcf3cbb162195395234f0;hb=359de4c8f0085f6b1af47b9d9e92b3ddc6c47cab;hp=bb77ccf85da0ad8687d8520b76278738df1ddf12;hpb=23af52a05391e8083e7211358021bac94e5e0103;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index bb77ccf8..958c23e4 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -3152,7 +3152,9 @@ void meshlink_channel_shutdown(meshlink_handle_t *mesh, meshlink_channel_t *chan return; } + pthread_mutex_lock(&mesh->mesh_mutex); utcp_shutdown(channel->c, direction); + pthread_mutex_unlock(&mesh->mesh_mutex); } void meshlink_channel_close(meshlink_handle_t *mesh, meshlink_channel_t *channel) { @@ -3161,6 +3163,8 @@ void meshlink_channel_close(meshlink_handle_t *mesh, meshlink_channel_t *channel return; } + pthread_mutex_lock(&mesh->mesh_mutex); + utcp_close(channel->c); /* Clean up any outstanding AIO buffers. */ @@ -3176,6 +3180,8 @@ void meshlink_channel_close(meshlink_handle_t *mesh, meshlink_channel_t *channel free(aio); } + pthread_mutex_unlock(&mesh->mesh_mutex); + free(channel); }