(allocate_stack): Return EAGAIN instead of ENOMEM when out of memory.
authordrepper <drepper>
Sat, 18 Sep 2004 21:20:52 +0000 (21:20 +0000)
committerdrepper <drepper>
Sat, 18 Sep 2004 21:20:52 +0000 (21:20 +0000)
nptl/allocatestack.c

index 6dd2621..cbdd781 100644 (file)
@@ -366,8 +366,11 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 
       /* Allocate the DTV for this thread.  */
       if (_dl_allocate_tls (TLS_TPADJ (pd)) == NULL)
-       /* Something went wrong.  */
-       return errno;
+       {
+         /* Something went wrong.  */
+         assert (errno == ENOMEM);
+         return EAGAIN;
+       }
 
 
       /* Prepare to modify global data.  */
@@ -498,12 +501,12 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
          if (_dl_allocate_tls (TLS_TPADJ (pd)) == NULL)
            {
              /* Something went wrong.  */
-             int err = errno;
+             assert (errno == ENOMEM);
 
              /* Free the stack memory we just allocated.  */
              (void) munmap (mem, size);
 
-             return err;
+             return EAGAIN;
            }