diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 5 | ||||
-rw-r--r-- | nptl/allocatestack.c | 11 |
2 files changed, 12 insertions, 4 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 6cd9b0d..db3aeba 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2004-09-18 Ulrich Drepper <drepper@redhat.com> + + * allocatestack.c (allocate_stack): Return EAGAIN instead of + ENOMEM when out of memory. + 2004-09-10 Roland McGrath <roland@redhat.com> [BZ #379] diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 6dd2621..cbdd781 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -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; } |