@@ -65,16 +65,15 @@ static void SIG_EXIT(core_loop *loop, core_signal *signal, int revents){
6565 /* 只有主进程退出的时候才需要通知子进程退出 */
6666 if (ev_userdata (loop ))
6767 kill (0 , SIGQUIT );
68-
6968 return exit (EXIT_SUCCESS );
7069}
7170
7271/* 内部异常 */
7372static void EV_ERROR_CB (const char * msg ){
7473 LOG ("ERROR" , msg );
7574 LOG ("ERROR" , strerror (errno ));
76- if (core_default_loop () ) {
77- pid_t * pids = (pid_t * )ev_userdata (core_default_loop () );
75+ if (CORE_LOOP ) {
76+ pid_t * pids = (pid_t * )ev_userdata (CORE_LOOP );
7877 if (pids )
7978 kill (0 , SIGKILL );
8079 }
@@ -196,18 +195,21 @@ static inline void signal_init(){
196195 core_signal_init (& sigtstp , SIG_IGNORE , SIGTSTP );
197196 core_signal_start (CORE_LOOP_ & sigtstp );
198197
199- /* TERM信号 显示退出 */
200- core_signal_init (& sigterm , SIG_EXIT , SIGTERM );
201- core_signal_start (CORE_LOOP_ & sigterm );
198+ if (ev_userdata (CORE_LOOP )) {
199+
200+ /* TERM信号 显示退出 */
201+ core_signal_init (& sigterm , SIG_EXIT , SIGTERM );
202+ core_signal_start (CORE_LOOP_ & sigterm );
202203
203- /* INT信号 显示退出 */
204- core_signal_init (& sigint , SIG_EXIT , SIGINT );
205- core_signal_start (CORE_LOOP_ & sigint );
204+ /* INT信号 显示退出 */
205+ core_signal_init (& sigint , SIG_EXIT , SIGINT );
206+ core_signal_start (CORE_LOOP_ & sigint );
206207
207- /* QUIT信号 显示退出 */
208- core_signal_init (& sigquit , SIG_EXIT , SIGQUIT );
209- core_signal_start (CORE_LOOP_ & sigquit );
208+ /* QUIT信号 显示退出 */
209+ core_signal_init (& sigquit , SIG_EXIT , SIGQUIT );
210+ core_signal_start (CORE_LOOP_ & sigquit );
210211
212+ }
211213}
212214
213215int core_worker_run (const char entry []) {
@@ -216,7 +218,7 @@ int core_worker_run(const char entry[]) {
216218 /* hook 事件循环错误信息 */
217219 core_ev_set_syserr_cb (EV_ERROR_CB );
218220 /* 初始化事件循环对象 */
219- core_loop * loop = core_loop_fork (core_default_loop () );
221+ core_loop * loop = core_loop_fork (CORE_LOOP );
220222
221223 int status = 0 ;
222224
@@ -258,12 +260,11 @@ int core_master_run(pid_t *pids, int* pidcount) {
258260 /* hook 事件循环错误信息 */
259261 core_ev_set_syserr_cb (EV_ERROR_CB );
260262 /* 初始化事件循环对象 */
261- core_loop * loop = core_loop_fork (core_default_loop ());
262- /* 初始化信号 */
263- signal_init ();
264- /* 设置pid */
263+ core_loop * loop = core_loop_fork (CORE_LOOP );
264+ /* 设置pid */
265265 ev_set_userdata (loop , pids );
266- /* 监听子进程 */
266+ /* 初始化信号 */
267+ signal_init ();
267268
268269 lua_State * L = lua_newstate (L_ALLOC , NULL );
269270 if (!L ){
@@ -274,11 +275,10 @@ int core_master_run(pid_t *pids, int* pidcount) {
274275
275276 /* 加载 Lua 标准库 */
276277 init_lua_libs (L , MASTER );
277- // LOG("INFO", boot);
278+
278279 /* 读取文件或默认运行 */
279- int status = luaL_loadbufferx (L , master_boot , strlen (master_boot ), "=[boot .lua]" , "t" );
280+ int status = luaL_loadbufferx (L , master_boot , strlen (master_boot ), "=[main .lua]" , "t" );
280281 if (status != LUA_OK ) {
281- printf ("[%d], %s\n" , status , lua_tostring (L , -1 ));
282282 lua_close (L );
283283 kill (0 , SIGQUIT );
284284 core_exit ();
0 commit comments