From 9ec36039c82951d6a097b1a028bc8216033eb7e4 Mon Sep 17 00:00:00 2001 From: bje Date: Thu, 23 Jul 1998 15:56:11 +0000 Subject: 1998-07-24 Ben Elliston * attr.c (pthread_attr_getdetachstate): Implement. (pthread_attr_setdetachstate): Likewise. --- attr.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'attr.c') diff --git a/attr.c b/attr.c index 6f89672..0e72575 100644 --- a/attr.c +++ b/attr.c @@ -100,11 +100,44 @@ pthread_attr_init(pthread_attr_t *attr) attr->cancelability = PTHREAD_CANCEL_ENABLE; attr->canceltype = PTHREAD_CANCEL_DEFERRED; + attr->detached = PTHREAD_CREATE_JOINABLE; attr->valid = 0; return 0; } +int +pthread_attr_getdetachstate(const pthread_attr_t *attr, + int *detachstate) +{ + if (is_attr(attr) != 0 || detachstate == NULL) + { + return EINVAL; + } + + *detachstate = attr->detached; + return 0; +} + +int +pthread_attr_setdetachstate(pthread_attr_t *attr, + int detachstate) +{ + if (is_attr(attr) != 0) + { + return EINVAL; + } + + if (detachstate != PTHREAD_CREATE_JOINABLE || + detachstate != PTHREAD_CREATE_DETACHED) + { + return EINVAL; + } + + attr->detached = detachstate; + return 0; +} + int pthread_attr_destroy(pthread_attr_t *attr) { -- cgit v1.2.3