fix some exit situations, that was badly done by SIGUSR1 handler
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <platform_types.h>
|
||||||
#include "config_userapi.h"
|
#include "config_userapi.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,8 +37,8 @@
|
|||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
|
#include <platform_types.h>
|
||||||
#include "config_userapi.h"
|
#include "config_userapi.h"
|
||||||
extern void exit_fun(const char* s); // lte-softmodem clean exit function
|
|
||||||
|
|
||||||
|
|
||||||
configmodule_interface_t *config_get_if(void)
|
configmodule_interface_t *config_get_if(void)
|
||||||
|
|||||||
@@ -38,8 +38,6 @@
|
|||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
/* get rid of "exit_fun undeclared" warning */
|
|
||||||
extern void exit_fun(const char* s);
|
|
||||||
|
|
||||||
#define CONFIG_GETSOURCE ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgmode )
|
#define CONFIG_GETSOURCE ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgmode )
|
||||||
#define CONFIG_GETNUMP ( (config_get_if()==NULL) ? 0 : config_get_if()->num_cfgP )
|
#define CONFIG_GETNUMP ( (config_get_if()==NULL) ? 0 : config_get_if()->num_cfgP )
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ extern "C" {
|
|||||||
void itti_terminate_tasks(task_id_t task_id) {
|
void itti_terminate_tasks(task_id_t task_id) {
|
||||||
// Sends Terminate signals to all tasks.
|
// Sends Terminate signals to all tasks.
|
||||||
itti_send_terminate_message (task_id);
|
itti_send_terminate_message (task_id);
|
||||||
pthread_exit (NULL);
|
usleep(100*1000); // Allow the tasks to receive the message before going returning to main thread
|
||||||
}
|
}
|
||||||
|
|
||||||
int itti_init(task_id_t task_max, thread_id_t thread_max, MessagesIds messages_id_max, const task_info_t *tasks_info,
|
int itti_init(task_id_t task_max, thread_id_t thread_max, MessagesIds messages_id_max, const task_info_t *tasks_info,
|
||||||
|
|||||||
@@ -302,8 +302,6 @@ char sv1[64];
|
|||||||
}
|
}
|
||||||
int proccmd_exit(char *buf, int debug, telnet_printfunc_t prnt)
|
int proccmd_exit(char *buf, int debug, telnet_printfunc_t prnt)
|
||||||
{
|
{
|
||||||
extern void exit_fun(const char* s);
|
|
||||||
|
|
||||||
if (debug > 0)
|
if (debug > 0)
|
||||||
prnt("process module received %s\n",buf);
|
prnt("process module received %s\n",buf);
|
||||||
|
|
||||||
|
|||||||
@@ -930,7 +930,6 @@ typedef enum {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void exit_fun(const char* s);
|
|
||||||
|
|
||||||
#include "common/utils/LOG/log_extern.h"
|
#include "common/utils/LOG/log_extern.h"
|
||||||
extern pthread_cond_t sync_cond;
|
extern pthread_cond_t sync_cond;
|
||||||
|
|||||||
@@ -22,7 +22,11 @@
|
|||||||
openair0_device openair0;
|
openair0_device openair0;
|
||||||
volatile int oai_exit=0;
|
volatile int oai_exit=0;
|
||||||
|
|
||||||
void exit_fun(const char *s) { exit(-1); }
|
void exit_function(const char* file, const char* function, const int line,const char *s) {
|
||||||
|
const char * msg= s==NULL ? "no comment": s;
|
||||||
|
printf("Exiting at: %s:%d %s(), %s\n", file, line, function, msg);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
extern unsigned int dlsch_tbs25[27][25],TBStable[27][110];
|
extern unsigned int dlsch_tbs25[27][25],TBStable[27][110];
|
||||||
extern unsigned char offset_mumimo_llr_drange_fix;
|
extern unsigned char offset_mumimo_llr_drange_fix;
|
||||||
|
|||||||
@@ -285,4 +285,7 @@ typedef struct protocol_ctxt_s {
|
|||||||
(CTXT_Pp)->rnti
|
(CTXT_Pp)->rnti
|
||||||
|
|
||||||
#define CHECK_CTXT_ARGS(CTXT_Pp)
|
#define CHECK_CTXT_ARGS(CTXT_Pp)
|
||||||
|
|
||||||
|
#define exit_fun(msg) exit_function(__FILE__,__FUNCTION__,__LINE__,msg)
|
||||||
|
void exit_function(const char* file, const char* function, const int line, const char* s);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ void handle_reconfiguration(mid_t mod_id)
|
|||||||
|
|
||||||
if (restart_L1L2(mod_id) < 0) {
|
if (restart_L1L2(mod_id) < 0) {
|
||||||
LOG_F(ENB_APP, "can not restart, killing lte-softmodem\n");
|
LOG_F(ENB_APP, "can not restart, killing lte-softmodem\n");
|
||||||
itti_terminate_tasks(TASK_PHY_ENB);
|
exit_fun("can not restart L1L2, killing lte-softmodem");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,7 +141,6 @@ static struct {
|
|||||||
|
|
||||||
extern double cpuf;
|
extern double cpuf;
|
||||||
|
|
||||||
void exit_fun(const char* s);
|
|
||||||
|
|
||||||
void init_eNB(int,int);
|
void init_eNB(int,int);
|
||||||
void stop_eNB(int nb_inst);
|
void stop_eNB(int nb_inst);
|
||||||
|
|||||||
@@ -319,13 +319,13 @@ void signal_handler(int sig) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void exit_fun(const char* s)
|
void exit_function(const char* file, const char* function, const int line, const char* s)
|
||||||
{
|
{
|
||||||
|
|
||||||
int ru_id;
|
int ru_id;
|
||||||
|
|
||||||
if (s != NULL) {
|
if (s != NULL) {
|
||||||
printf("%s %s() Exiting OAI softmodem: %s\n",__FILE__, __FUNCTION__, s);
|
printf("%s:%d %s() Exiting OAI softmodem: %s\n",file,line, function, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
oai_exit = 1;
|
oai_exit = 1;
|
||||||
@@ -345,11 +345,11 @@ void exit_fun(const char* s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
|
||||||
sleep(1); //allow lte-softmodem threads to exit first
|
sleep(1); //allow lte-softmodem threads to exit first
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
itti_terminate_tasks (TASK_UNKNOWN);
|
itti_terminate_tasks (TASK_UNKNOWN);
|
||||||
#endif
|
#endif
|
||||||
|
exit(1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -240,7 +240,6 @@ extern volatile int start_UE;
|
|||||||
#include "threads_t.h"
|
#include "threads_t.h"
|
||||||
extern threads_t threads;
|
extern threads_t threads;
|
||||||
|
|
||||||
extern void exit_fun(const char* s);
|
|
||||||
// In lte-enb.c
|
// In lte-enb.c
|
||||||
extern void init_eNB(int single_thread_flag,int wait_for_sync);
|
extern void init_eNB(int single_thread_flag,int wait_for_sync);
|
||||||
extern void stop_eNB(int);
|
extern void stop_eNB(int);
|
||||||
|
|||||||
@@ -322,13 +322,13 @@ void signal_handler(int sig) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void exit_fun(const char* s)
|
void exit_function(const char* file, const char* function, const int line, const char* s)
|
||||||
{
|
{
|
||||||
int CC_id;
|
int CC_id;
|
||||||
|
|
||||||
logClean();
|
logClean();
|
||||||
if (s != NULL) {
|
if (s != NULL) {
|
||||||
printf("%s %s() Exiting OAI softmodem: %s\n",__FILE__, __FUNCTION__, s);
|
printf("%s:%d %s() Exiting OAI softmodem: %s\n",file,line, function, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
oai_exit = 1;
|
oai_exit = 1;
|
||||||
@@ -341,10 +341,11 @@ void exit_fun(const char* s)
|
|||||||
PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
|
PHY_vars_UE_g[0][CC_id]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][CC_id]->rfdevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
|
||||||
sleep(1); //allow lte-softmodem threads to exit first
|
sleep(1); //allow lte-softmodem threads to exit first
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
itti_terminate_tasks (TASK_UNKNOWN);
|
itti_terminate_tasks (TASK_UNKNOWN);
|
||||||
#endif
|
#endif
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef XFORMS
|
#ifdef XFORMS
|
||||||
|
|||||||
Reference in New Issue
Block a user