diff --git a/skynet-src/skynet_server.c b/skynet-src/skynet_server.c index 0a3a6b00..5464c12b 100644 --- a/skynet-src/skynet_server.c +++ b/skynet-src/skynet_server.c @@ -169,7 +169,11 @@ skynet_context_new(const char * name, const char *param) { int skynet_context_newsession(struct skynet_context *ctx) { // session always be a positive number - int session = (++ctx->session_id) & 0x7fffffff; + int session = ++ctx->session_id; + if (session <= 0) { + ctx->session_id = 1; + return 1; + } return session; }