Added kill_recv

This commit is contained in:
James Booth
2015-05-27 00:20:38 +01:00
parent 1437ad1387
commit 8907bd0ac9

View File

@@ -32,6 +32,7 @@ static void _shutdown(void);
static int listen_socket; static int listen_socket;
static pthread_t server_thread; static pthread_t server_thread;
static gboolean kill_recv = FALSE;
void void
write_stream(const char * const stream) write_stream(const char * const stream)
@@ -72,6 +73,11 @@ read_stream(void)
errno = 0; errno = 0;
while (TRUE) { while (TRUE) {
if (kill_recv) {
_shutdown();
return 0;
}
// send anything from queue // send anything from queue
pthread_mutex_lock(&send_queue_lock); pthread_mutex_lock(&send_queue_lock);
GList *curr_send = send_queue; GList *curr_send = send_queue;
@@ -235,6 +241,8 @@ server_run(int port)
send_queue = NULL; send_queue = NULL;
pthread_mutex_unlock(&send_queue_lock); pthread_mutex_unlock(&send_queue_lock);
kill_recv = FALSE;
client = NULL; client = NULL;
log_init(); log_init();
log_println("Starting on port: %d...", port); log_println("Starting on port: %d...", port);
@@ -304,6 +312,7 @@ server_send(char *stream)
void void
server_stop(void) server_stop(void)
{ {
kill_recv = TRUE;
pthread_join(server_thread, NULL); pthread_join(server_thread, NULL);
} }
@@ -327,5 +336,6 @@ _shutdown(void)
g_list_free_full(send_queue, free); g_list_free_full(send_queue, free);
send_queue = NULL; send_queue = NULL;
pthread_mutex_unlock(&send_queue_lock); pthread_mutex_unlock(&send_queue_lock);
log_close(); log_close();
} }