diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index 0f0f6b5ec0cc97f657f06502cb1b093be5fda5b1..77e56cafb3bda7b02b5c0eaf5a97ec24514884be 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -4026,7 +4026,6 @@ void http_output_thread(void *arg) sock_sendbuf(&session->socket, buf, len, &failed); pthread_mutex_unlock(&session->outbuf_write); } - pthread_mutex_destroy(&session->outbuf_write); thread_down(); sem_post(&session->output_thread_terminated); } @@ -4101,6 +4100,7 @@ void http_session_thread(void* arg) close_socket(&session.socket); sem_wait(&session.output_thread_terminated); RingBufDispose(&session.outbuf); + pthread_mutex_destroy(&session->outbuf_write); lprintf(LOG_NOTICE,"%04d !CLIENT BLOCKED in host.can: %s", session.socket, host_name); thread_down(); session_threads--; @@ -4113,6 +4113,7 @@ void http_session_thread(void* arg) close_socket(&session.socket); sem_wait(&session.output_thread_terminated); RingBufDispose(&session.outbuf); + pthread_mutex_destroy(&session->outbuf_write); lprintf(LOG_NOTICE,"%04d !CLIENT BLOCKED in ip.can: %s", session.socket, session.host_ip); thread_down(); session_threads--; @@ -4225,6 +4226,7 @@ void http_session_thread(void* arg) sem_wait(&session.output_thread_terminated); sem_destroy(&session.output_thread_terminated); RingBufDispose(&session.outbuf); + pthread_mutex_destroy(&session->outbuf_write); active_clients--; update_clients();