summaryrefslogtreecommitdiff
path: root/create.c
diff options
context:
space:
mode:
authorrpj <rpj>1998-07-25 14:51:07 +0000
committerrpj <rpj>1998-07-25 14:51:07 +0000
commit514f53305f6c42256c672d552aa9d477c1266163 (patch)
treeff027b426b1d85512fe3105a9937ffb472413a4a /create.c
parentee95385721e0dbd4ba637e78b30101f1c9d24e75 (diff)
Sun Jul 26 00:09:59 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* condvar.c (cond_wait): Add cancelation point. This applies the point to both pthread_cond_wait() and pthread_cond_timedwait(). * exit.c (pthread_exit): Rename "this" to "us". * implement.h: Add comment. * sync.c (pthread_join): I've satisfied myself that pthread_detach() does set the detached attribute in the thread entry attributes to PTHREAD_CREATE_DETACHED. "if" conditions were changed to test that attribute instead of a separate flag. * create.c (pthread_create): Rename "this" to "us". (pthread_create): cancelstate and canceltype are not attributes so the copy to thread entry attribute storage was removed. Only the thread itself can change it's cancelstate or canceltype, ie. the thread must exist already.
Diffstat (limited to 'create.c')
-rw-r--r--create.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/create.c b/create.c
index 8cc5a57..3a3f4b5 100644
--- a/create.c
+++ b/create.c
@@ -103,13 +103,13 @@ pthread_create(pthread_t *thread,
void * security = NULL;
DWORD threadID;
pthread_attr_t * attr_copy;
- _pthread_threads_thread_t * this;
+ _pthread_threads_thread_t * us;
/* Success unless otherwise set. */
int ret = 0;
- if (_pthread_new_thread_entry((pthread_t) handle, this) == 0)
+ if (_pthread_new_thread_entry((pthread_t) handle, us) == 0)
{
- attr_copy = &(this->attr);
+ attr_copy = &(us->attr);
/* Map given attributes otherwise just use default values. */
if (attr != NULL)
@@ -119,8 +119,6 @@ pthread_create(pthread_t *thread,
attr_copy->stacksize = PTHREAD_STACK_MIN;
}
- attr_copy->cancelstate = attr->cancelstate;
- attr_copy->canceltype = attr->canceltype;
attr_copy->detachedstate = attr->detachedstate;
attr_copy->priority = attr->priority;
@@ -129,15 +127,13 @@ pthread_create(pthread_t *thread,
#endif /* HAVE_SIGSET_T */
}
- this->detach = (attr->detachedstate == PTHREAD_CREATE_DETACHED);
-
/* Start running, not suspended. */
flags = 0;
handle = (HANDLE) _beginthreadex(security,
attr_copy->stacksize,
_pthread_start_call,
- (void *) this,
+ (void *) us,
flags,
&threadID);
@@ -159,7 +155,7 @@ pthread_create(pthread_t *thread,
else
{
/* Remove the failed thread entry. */
- _pthread_delete_thread_entry(this);
+ _pthread_delete_thread_entry(us);
}
return ret;