diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index b87277dfb22aade55853dcb540265128c58279d5..e75bf5b2583cd1edac6fcecdc98c9604393b1d7e 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -1447,15 +1447,6 @@ static void* ru_thread_control( void* param ) { } if (ru->if_south != LOCAL_RF) wait_eNBs(); - - LOG_I(PHY, "Signaling main thread that RU %d is ready\n",ru->idx); - pthread_mutex_lock(&RC.ru_mutex); - RC.ru_mask &= ~(1<<ru->idx); - pthread_cond_signal(&RC.ru_cond); - pthread_mutex_unlock(&RC.ru_mutex); - - wait_sync("ru_thread"); - ru->state = RU_IDLE; LOG_I(PHY,"Control channel ON for RU %d\n", ru->idx); @@ -1576,6 +1567,14 @@ static void* ru_thread_control( void* param ) { exit_fun( "ERROR pthread_cond_signal" ); break; } + + LOG_I(PHY, "Signaling main thread that RU %d is ready\n",ru->idx); + pthread_mutex_lock(&RC.ru_mutex); + RC.ru_mask &= ~(1<<ru->idx); + pthread_cond_signal(&RC.ru_cond); + pthread_mutex_unlock(&RC.ru_mutex); + + wait_sync("ru_thread"); } break;