diff --git a/Readme.md b/Readme.md index f0a93b7b49ddf7dd1d78ddfb3a98ae076ba63324..627a408d256c8c440124799f5e78562a3c545753 100644 --- a/Readme.md +++ b/Readme.md @@ -196,7 +196,7 @@ int main() { # include <unistd.h> static void sigchldHandler(int sig); -int i; +static int pcount; int main() { struct sigaction handleSIGCHLD = @@ -226,9 +226,9 @@ int main() { } //passives warten - i = 1; + pcount = 1; if (sigprocmask(SIG_BLOCK, &newMask_Itr, &oldMask_Itr) == -1) die("sigprocmask"); - while (i > 0) { + while (pcount > 0) { sigsuspend(&oldMask_Itr); } } @@ -240,7 +240,7 @@ static void sigchldHandler(int sig) { int event; while ((pid = waitpid(-1, &event, WNOHANG)) > 0) { // collect all zombies (prevent zombies if signal got lost because of masking) - i--; + pcount--; } } ``` diff --git a/Zettel.html b/Zettel.html index 00c54ddbbe2152867199bd3ee8126e5ad096fe15..8714e1a26c66a63b6c702e8c767a02b67c5c6aa9 100644 --- a/Zettel.html +++ b/Zettel.html @@ -184,7 +184,7 @@ accept</p> <span class="hljs-meta"># <span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><unistd.h></span></span> <span class="hljs-function"><span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">sigchldHandler</span><span class="hljs-params">(<span class="hljs-keyword">int</span> sig)</span></span>; -<span class="hljs-keyword">int</span> i; +<span class="hljs-keyword">static</span> <span class="hljs-keyword">int</span> pcount; <span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{ <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">sigaction</span> <span class="hljs-title">handleSIGCHLD</span> = @@ -214,9 +214,9 @@ accept</p> } <span class="hljs-comment">//passives warten</span> - i = <span class="hljs-number">1</span>; + pcount = <span class="hljs-number">1</span>; <span class="hljs-keyword">if</span> (sigprocmask(SIG_BLOCK, &newMask_Itr, &oldMask_Itr) == <span class="hljs-number">-1</span>) die(<span class="hljs-string">"sigprocmask"</span>); - <span class="hljs-keyword">while</span> (i > <span class="hljs-number">0</span>) { + <span class="hljs-keyword">while</span> (pcount > <span class="hljs-number">0</span>) { sigsuspend(&oldMask_Itr); } } @@ -228,7 +228,7 @@ accept</p> <span class="hljs-keyword">int</span> event; <span class="hljs-keyword">while</span> ((pid = waitpid(<span class="hljs-number">-1</span>, &event, WNOHANG)) > <span class="hljs-number">0</span>) { <span class="hljs-comment">// collect all zombies (prevent zombies if signal got lost because of masking)</span> - i--; + pcount--; } } </code></pre> diff --git a/signal.c b/signal.c index a32774dda3407b72d2b5cd22a2874f9990585065..1b5706062e1bb1b1c219a0191e510cb35c34935c 100644 --- a/signal.c +++ b/signal.c @@ -5,7 +5,7 @@ #include <unistd.h> static void sigchldHandler(int sig); -int i; +static int pcount; int main() { struct sigaction handleSIGCHLD = @@ -35,9 +35,9 @@ int main() { } //passives warten - i = 1; + pcount = 1; if (sigprocmask(SIG_BLOCK, &newMask_Itr, &oldMask_Itr) == -1) die("sigprocmask"); - while (i > 0) { + while (pcount > 0) { sigsuspend(&oldMask_Itr); } } @@ -49,6 +49,6 @@ static void sigchldHandler(int sig) { int event; while ((pid = waitpid(-1, &event, WNOHANG)) > 0) { // collect all zombies (prevent zombies if signal got lost because of masking) - i--; + pcount--; } }