diff --git a/src/main/sdvxio-bio2/sdvxio.c b/src/main/sdvxio-bio2/sdvxio.c index 4aa624e..0405682 100644 --- a/src/main/sdvxio-bio2/sdvxio.c +++ b/src/main/sdvxio-bio2/sdvxio.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -31,8 +32,8 @@ static uint16_t sdvx_io_analog[2]; static char autodetect_buffer[512]; -static bool running; -static bool processing_io; +static atomic_bool running; +static atomic_bool processing_io; static int16_t bio2_node_id; uint8_t wing_staging[12]; diff --git a/src/main/sdvxio-kfca/sdvxio.c b/src/main/sdvxio-kfca/sdvxio.c index 7c7533e..41708e6 100644 --- a/src/main/sdvxio-kfca/sdvxio.c +++ b/src/main/sdvxio-kfca/sdvxio.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -29,8 +30,8 @@ static uint16_t sdvx_io_gpio[2]; static uint8_t sdvx_io_gpio_sys; static uint16_t sdvx_io_analog[2]; -static bool running; -static bool processing_io; +static atomic_bool running; +static atomic_bool processing_io; static int16_t kfca_node_id; struct ac_io_kfca_poll_out pout_staging; @@ -129,6 +130,8 @@ void sdvx_io_fini(void) { running = false; while (processing_io) { + // avoid banging + Sleep(1); } }