diff options
author | LAN-TW <lantw44@gmail.com> | 2012-11-15 01:13:31 +0800 |
---|---|---|
committer | LAN-TW <lantw44@gmail.com> | 2012-11-15 01:14:37 +0800 |
commit | 97ab8270ab1c3aed71458b3d00a638743b238004 (patch) | |
tree | bca22410fb9fd4ca4cd007a096211e1cece0c7c9 | |
parent | a0a8496f1e04dc964e29cc4661193e92662eaffd (diff) | |
download | sctjudge-97ab8270ab1c3aed71458b3d00a638743b238004.tar.gz sctjudge-97ab8270ab1c3aed71458b3d00a638743b238004.tar.zst sctjudge-97ab8270ab1c3aed71458b3d00a638743b238004.zip |
更改 sctjudge_makechild_cleanup_p1() 中 sem_post() 的位置
基本上 sem_post() 目前來說是可以去掉,不過先暫時保留。
-rw-r--r-- | src/mkchild.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mkchild.c b/src/mkchild.c index ee370f5..fe2ee8c 100644 --- a/src/mkchild.c +++ b/src/mkchild.c @@ -95,10 +95,6 @@ static const char* childmsg_text[SCTCHILD_MSGMAX] = { }; static void sctjudge_makechild_cleanup_p1(void){ - /* 避免有 thread 卡在 sem 上砍不掉 */ - sem_post(&addthr); - sem_post(&addthr); - pthread_mutex_lock(&tkill_mx); if(tkill_yes){ tkill_yes = 0; @@ -116,6 +112,10 @@ static void sctjudge_makechild_cleanup_p1(void){ }else{ pthread_mutex_unlock(&tdisplay_mx); } + + /* 這基本上應該是可以去掉的,sem_wait() 也是 cancellation point */ + sem_post(&addthr); + sem_post(&addthr); } static void sctjudge_makechild_cleanup_p2(mcopt, oldperm, copiedexe) |