summaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-09-18 21:21:36 +0000
committerUlrich Drepper <drepper@redhat.com>2004-09-18 21:21:36 +0000
commit1ab1fa6fb741caf552f2f1d79467d2455655d02b (patch)
treea62c9832387f80954fc6096873675bd54d7f9327 /nptl
parentf4380a09e37999af50152fd294205119e4f875eb (diff)
Update.
2004-09-18 Ulrich Drepper <drepper@redhat.com> * allocatestack.c (allocate_stack): Return EAGAIN instead of ENOMEM when out of memory.
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 6cd9b0dbd8..db3aeba3f7 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 6dd2621d99..cbdd781eeb 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;
}