diff --git a/src/hardware/wifictl.cpp b/src/hardware/wifictl.cpp index eb79b3a..ee196b1 100644 --- a/src/hardware/wifictl.cpp +++ b/src/hardware/wifictl.cpp @@ -342,13 +342,11 @@ void wifictl_on( void ) { return; log_i("request wifictl on"); - if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST ) ) { - return; - } - else { - powermgm_set_event( POWERMGM_WIFI_ON_REQUEST ); - vTaskResume( _wifictl_Task ); + while( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ON_REQUEST ) ) { + yield(); } + powermgm_set_event( POWERMGM_WIFI_ON_REQUEST ); + vTaskResume( _wifictl_Task ); } /* @@ -359,13 +357,11 @@ void wifictl_off( void ) { return; log_i("request wifictl off"); - if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST )) { - return; - } - else { - powermgm_set_event( POWERMGM_WIFI_OFF_REQUEST ); - vTaskResume( _wifictl_Task ); + while( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ON_REQUEST ) ) { + yield(); } + powermgm_set_event( POWERMGM_WIFI_OFF_REQUEST ); + vTaskResume( _wifictl_Task ); } void wifictl_standby( void ) {