- struct apprun **prev = &runners_by_runid[(int)(runner->pids[0] & (ROOT_RUNNERS_COUNT - 1))];
- runner->next_by_pgid = *prev;
- *prev = runner;
-}
-
-/****************** manages pids **********************/
-
-/* get a runner by its pid */
-static struct apprun *runner_of_pid(pid_t pid)
-{
- int i;
- struct apprun *result;
-
- for (i = 0 ; i < ROOT_RUNNERS_COUNT ; i++)
- for (result = runners_by_pgid[i] ; result != NULL ; result = result->next_by_pgid)
- if (result->pids[0] == pid || result->pids[1] == pid)
- return result;
- return NULL;
+ struct apprun **prev = &runners_by_pgid[(int)(runner->pids[0] & (ROOT_RUNNERS_COUNT - 1))];
+ while (*prev) {
+ if (*prev == runner) {
+ *prev = runner->next_by_pgid;
+ break;
+ }
+ prev = &(*prev)->next_by_pgid;
+ }