diff options
-rw-r--r-- | src/daemon/purple.c | 7 | ||||
-rw-r--r-- | src/device/meson.build | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/daemon/purple.c b/src/daemon/purple.c index e004448..fc4f49f 100644 --- a/src/daemon/purple.c +++ b/src/daemon/purple.c @@ -156,9 +156,11 @@ static void *purple_spawn(void *disregard) char *user = NULL; char *password = NULL; char *proto = NULL; + int cancelstate; (void) disregard; + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cancelstate); pthread_cleanup_push(pthread_mutex_unlock_thunk, &state.mutex); progname = setting_progname(); @@ -203,8 +205,11 @@ static void *purple_spawn(void *disregard) pthread_cleanup_push(purple_account_destroy_thunk, state.account); - g_main_loop_run(loop); pthread_cleanup_push(g_main_loop_quit_thunk, loop); + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &cancelstate); + pthread_testcancel(); + + g_main_loop_run(loop); pthread_cleanup_pop(1); pthread_cleanup_pop(1); diff --git a/src/device/meson.build b/src/device/meson.build index 10723b0..625bd2d 100644 --- a/src/device/meson.build +++ b/src/device/meson.build @@ -22,15 +22,18 @@ if get_option('fwbuild') assert((oledlib != []), 'oled lib not found in the supplied lib directory') - espmake = find_program('espmake') printf = find_program('printf') cat = find_program('cat') cp = find_program('cp') make = find_program('make') - nproc = find_program('nproc') + nproc = find_program('nproc', disabler : true) - nproc_out = run_command(nproc) - cpus = nproc_out.stdout().strip() + if nproc.found() + nproc_out = run_command(nproc) + cpus = nproc_out.stdout().strip() + else + cpus = '2' + endif fw_filenames = ['main.ino', 'DejaVu_Sans_Mono_13.h', |