aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/allocatestack.c11
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;
}