@@ -809,6 +809,24 @@ __make_stacks_executable (void **stack_endp)
return err;
}
+/* We always add at the beginning of the list. So in this
+ case we only need to check the beginning of these lists. */
+static bool
+check_list (list_t *l, list_t *elem)
+{
+ if (l->next->prev != l)
+ {
+ assert (l->next->prev == elem);
+
+ elem->next = l->next;
+ elem->prev = l;
+ l->next = elem;
+
+ return true;
+ }
+
+ return false;
+}
/* In case of a fork() call the memory allocation in the child will be
the same but only one thread is running. All stacks except that of
@@ -830,26 +848,8 @@ __reclaim_stacks (void)
if (add_p)
{
- /* We always add at the beginning of the list. So in this
- case we only need to check the beginning of these lists. */
- int check_list (list_t *l)
- {
- if (l->next->prev != l)
- {
- assert (l->next->prev == elem);
-
- elem->next = l->next;
- elem->prev = l;
- l->next = elem;
-
- return 1;
- }
-
- return 0;
- }
-
- if (check_list (&stack_used) == 0)
- (void) check_list (&stack_cache);
+ if (!check_list (&stack_used, elem))
+ (void) check_list (&stack_cache, elem);
}
else
{