summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libpthread/pthread_create.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2002-08-01 17:20:30 +0000
committerMystery Man <unknown@mandriva.org>2002-08-01 17:20:30 +0000
commit10e8a05be15a93ecb30d80420a7df79a41df0b6f (patch)
tree0fe3a8fe9665e857dcea7c8d35b539ab0295a6fa /mdk-stage1/dietlibc/libpthread/pthread_create.c
parent20bc98cdccfed607ee0c3050a3a3bd196c0a1d38 (diff)
downloaddrakx-backup-do-not-use-1_1_9_1mdk.tar
drakx-backup-do-not-use-1_1_9_1mdk.tar.gz
drakx-backup-do-not-use-1_1_9_1mdk.tar.bz2
drakx-backup-do-not-use-1_1_9_1mdk.tar.xz
drakx-backup-do-not-use-1_1_9_1mdk.zip
This commit was manufactured by cvs2svn to create tag 'V1_1_9_1mdk'.V1_1_9_1mdk
Diffstat (limited to 'mdk-stage1/dietlibc/libpthread/pthread_create.c')
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_create.c76
1 files changed, 0 insertions, 76 deletions
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_create.c b/mdk-stage1/dietlibc/libpthread/pthread_create.c
deleted file mode 100644
index b4a499081..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_create.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_create (pthread_t *thread, const pthread_attr_t *attr,
- void *(*start_routine) (void *), void *arg)
-{
- int ret=0;
- _pthread_descr td;
- pthread_attr_t default_attr;
-
- __THREAD_INIT();
-
- if (start_routine==0) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
-
- td = __thread_get_free();
-
- if (td) {
- if (!(attr)) {
- pthread_attr_init(&default_attr);
- attr=&default_attr;
- }
-
- if ((td->policy!=SCHED_OTHER)&&(td->priority==0)) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
-
- if (attr->__inheritsched==PTHREAD_INHERIT_SCHED) {
- _pthread_descr this = __thread_self();
- td->policy = this->policy;
- td->priority = this->priority;
- } else {
- td->policy = attr->__schedpolicy;
- td->priority = attr->__schedparam.sched_priority;
- }
-
- td->func = start_routine;
- td->arg = arg;
-
- td->detached = attr->__detachstate;
-
- td->stack_size = attr->__stacksize;
-
- if (!(td->stack_addr)) {
- char *stack=(char*)malloc(td->stack_size);
- if (!(stack)) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
- td->stack_begin = stack;
- td->stack_addr = stack+td->stack_size;
- } else {
- td->stack_begin = 0;
- td->stack_addr = attr->__stackaddr;
- }
-
- ret = signal_manager_thread(td);
-
- if (ret>1)
- *thread=ret;
- else
- __thread_cleanup(td);
- }
- else
- (*(__errno_location()))=EAGAIN;
-
- if (ret<2) return -1;
- return ret;
-}