Fix Session Quitting on Error

This commit is contained in:
Florian Märkl 2019-08-03 13:44:25 +02:00
commit c34ce875ba
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
2 changed files with 5 additions and 1 deletions

View file

@ -141,6 +141,8 @@ static void *ctrl_thread_func(void *user)
ctrl->recv_buf_size += received; ctrl->recv_buf_size += received;
} }
close(ctrl->sock);
return NULL; return NULL;
} }

View file

@ -193,7 +193,7 @@ static void *session_thread_func(void *arg)
chiaki_mutex_lock(&session->state_mutex); chiaki_mutex_lock(&session->state_mutex);
#define QUIT(quit_label) do { \ #define QUIT(quit_label) do { \
chiaki_mutex_lock(&session->state_mutex); \ chiaki_mutex_unlock(&session->state_mutex); \
goto quit_label; } while(0) goto quit_label; } while(0)
#define CHECK_STOP(quit_label) do { \ #define CHECK_STOP(quit_label) do { \
@ -309,6 +309,8 @@ quit_ctrl:
ChiakiEvent quit_event; ChiakiEvent quit_event;
quit: quit:
CHIAKI_LOGI(&session->log, "Session has quit");
quit_event.type = CHIAKI_EVENT_QUIT; quit_event.type = CHIAKI_EVENT_QUIT;
quit_event.quit.reason = session->quit_reason; quit_event.quit.reason = session->quit_reason;
session_send_event(session, &quit_event); session_send_event(session, &quit_event);