merge develop
This commit is contained in:
+17
-14
@@ -81,7 +81,7 @@ static int DEFRUTPCORES[] = {-1,-1,-1,-1};
|
||||
#include "nfapi_interface.h"
|
||||
#include <nfapi/oai_integration/vendor_ext.h>
|
||||
|
||||
extern volatile int oai_exit;
|
||||
extern int oai_exit;
|
||||
|
||||
extern struct timespec timespec_sub(struct timespec lhs, struct timespec rhs);
|
||||
extern struct timespec timespec_add(struct timespec lhs, struct timespec rhs);
|
||||
@@ -1277,8 +1277,10 @@ void *ru_thread( void *param ) {
|
||||
}
|
||||
} // end if (slot_type == NR_UPLINK_SLOT || slot_type == NR_MIXED_SLOT) {
|
||||
|
||||
// At this point, all RX information for slot has been received on FH interface and processed by RU
|
||||
res = pullTpool(gNB->resp_L1, gNB->threadPool);
|
||||
// At this point, all information for subframe has been received on FH interface
|
||||
res = pullTpool(&gNB->resp_L1, &gNB->threadPool);
|
||||
if (res == NULL)
|
||||
break; // Tpool has been stopped
|
||||
syncMsg = (processingData_L1_t *)NotifiedFifoData(res);
|
||||
syncMsg->gNB = gNB;
|
||||
syncMsg->frame_rx = proc->frame_rx;
|
||||
@@ -1287,9 +1289,8 @@ void *ru_thread( void *param ) {
|
||||
syncMsg->slot_tx = proc->tti_tx;
|
||||
syncMsg->timestamp_tx = proc->timestamp_tx;
|
||||
res->key = proc->tti_rx;
|
||||
pushTpool(gNB->threadPool, res);
|
||||
|
||||
} //end while (!oai_exit)
|
||||
pushTpool(&gNB->threadPool, res);
|
||||
}
|
||||
|
||||
printf( "Exiting ru_thread \n");
|
||||
|
||||
@@ -1299,13 +1300,6 @@ void *ru_thread( void *param ) {
|
||||
else LOG_I(PHY,"RU %d rf device stopped\n",ru->idx);
|
||||
}
|
||||
|
||||
res = pullNotifiedFIFO(gNB->resp_L1);
|
||||
delNotifiedFIFO_elt(res);
|
||||
res = pullNotifiedFIFO(gNB->L1_tx_free);
|
||||
delNotifiedFIFO_elt(res);
|
||||
res = pullNotifiedFIFO(gNB->L1_tx_free);
|
||||
delNotifiedFIFO_elt(res);
|
||||
|
||||
ru_thread_status = 0;
|
||||
return &ru_thread_status;
|
||||
}
|
||||
@@ -1364,10 +1358,19 @@ void init_RU_proc(RU_t *ru) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
void kill_NR_RU_proc(int inst) {
|
||||
RU_t *ru = RC.ru[inst];
|
||||
RU_proc_t *proc = &ru->proc;
|
||||
LOG_D(PHY, "Joining pthread_FH\n");
|
||||
|
||||
/* Note: it seems pthread_FH and and FEP thread below both use
|
||||
* mutex_fep/cond_fep. Thus, we unlocked above for pthread_FH above and do
|
||||
* the same for FEP thread below again (using broadcast() to ensure both
|
||||
* threads get the signal). This one will also destroy the mutex and cond. */
|
||||
pthread_mutex_lock(&proc->mutex_fep[0]);
|
||||
proc->instance_cnt_fep[0] = 0;
|
||||
pthread_cond_broadcast(&proc->cond_fep[0]);
|
||||
pthread_mutex_unlock( &proc->mutex_fep[0] );
|
||||
pthread_join(proc->pthread_FH, NULL);
|
||||
|
||||
if (opp_enabled) {
|
||||
|
||||
Reference in New Issue
Block a user