mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 12:20:41 +00:00
BUG: console 里启动一个服务失败后,无法使用 abort 退出 skynet
FIX: init 模块前全局 context 计数加一,因为 init 失败后会去 release context,此时会全局 context 计数减一。以前会因此导致全局 context 计数不准,而无法退出。
This commit is contained in:
@@ -103,6 +103,7 @@ skynet_context_new(const char * name, const char *param) {
|
|||||||
ctx->handle = skynet_handle_register(ctx);
|
ctx->handle = skynet_handle_register(ctx);
|
||||||
struct message_queue * queue = ctx->queue = skynet_mq_create(ctx->handle);
|
struct message_queue * queue = ctx->queue = skynet_mq_create(ctx->handle);
|
||||||
// init function maybe use ctx->handle, so it must init at last
|
// init function maybe use ctx->handle, so it must init at last
|
||||||
|
_context_inc();
|
||||||
|
|
||||||
CHECKCALLING_BEGIN(ctx)
|
CHECKCALLING_BEGIN(ctx)
|
||||||
int r = skynet_module_instance_init(mod, inst, ctx, param);
|
int r = skynet_module_instance_init(mod, inst, ctx, param);
|
||||||
@@ -116,7 +117,6 @@ skynet_context_new(const char * name, const char *param) {
|
|||||||
if (ret) {
|
if (ret) {
|
||||||
printf("[:%x] launch %s %s\n",ret->handle, name, param ? param : "");
|
printf("[:%x] launch %s %s\n",ret->handle, name, param ? param : "");
|
||||||
}
|
}
|
||||||
_context_inc();
|
|
||||||
return ret;
|
return ret;
|
||||||
} else {
|
} else {
|
||||||
skynet_context_release(ctx);
|
skynet_context_release(ctx);
|
||||||
|
|||||||
Reference in New Issue
Block a user