mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
Fix #1552
This commit is contained in:
@@ -521,14 +521,12 @@ snlua_signal(struct snlua *l, int signal) {
|
||||
skynet_error(l->ctx, "recv a signal %d", signal);
|
||||
if (signal == 0) {
|
||||
if (ATOM_LOAD(&l->trap) == 0) {
|
||||
int zero = 0;
|
||||
// only one thread can set trap ( l->trap 0->1 )
|
||||
if (!ATOM_CAS(&l->trap, zero, 1))
|
||||
if (!ATOM_CAS(&l->trap, 0, 1))
|
||||
return;
|
||||
lua_sethook (l->activeL, signal_hook, LUA_MASKCOUNT, 1);
|
||||
// finish set ( l->trap 1 -> -1 )
|
||||
int one = 1;
|
||||
ATOM_CAS(&l->trap, one, -1);
|
||||
ATOM_CAS(&l->trap, 1, -1);
|
||||
}
|
||||
} else if (signal == 1) {
|
||||
skynet_error(l->ctx, "Current Memory %.3fK", (float)l->mem / 1024);
|
||||
|
||||
Reference in New Issue
Block a user