Properly exit usb thread (e.g. on Ctrl-D)
This commit is contained in:
@@ -44,11 +44,11 @@ static void *usb_receiver(void *targ) {
|
|||||||
static void *main_loop(void *targ)
|
static void *main_loop(void *targ)
|
||||||
{
|
{
|
||||||
struct main_loop_arg *arg = (struct main_loop_arg*)targ;
|
struct main_loop_arg *arg = (struct main_loop_arg*)targ;
|
||||||
|
struct usb_receiver_arg rarg;
|
||||||
char *cmd = NULL;
|
char *cmd = NULL;
|
||||||
pthread_t reader_thread;
|
pthread_t reader_thread;
|
||||||
|
|
||||||
if (arg->usb_present == 1) {
|
if (arg->usb_present == 1) {
|
||||||
struct usb_receiver_arg rarg;
|
|
||||||
rarg.run=1;
|
rarg.run=1;
|
||||||
pthread_create(&reader_thread, NULL, &usb_receiver, &rarg);
|
pthread_create(&reader_thread, NULL, &usb_receiver, &rarg);
|
||||||
}
|
}
|
||||||
@@ -67,6 +67,11 @@ static void *main_loop(void *targ)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arg->usb_present == 1) {
|
||||||
|
rarg.run = 0;
|
||||||
|
pthread_join(reader_thread, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
ExitGraphics();
|
ExitGraphics();
|
||||||
pthread_exit(NULL);
|
pthread_exit(NULL);
|
||||||
|
|||||||
Reference in New Issue
Block a user