1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| | #include "pthread_impl.h"
extern size_t __default_stacksize;
extern size_t __default_guardsize;
int pthread_setattr_default_np(const pthread_attr_t *attrp)
{
if (attrp->_a_stackaddr || attrp->_a_detach ||
attrp->_a_sched || attrp->_a_policy || attrp->_a_prio)
return EINVAL;
__inhibit_ptc();
if (DEFAULT_STACK_SIZE+attrp->_a_stacksize >= DEFAULT_STACK_SIZE+__default_stacksize)
__default_stacksize = attrp->_a_stacksize;
if (DEFAULT_GUARD_SIZE+attrp->_a_guardsize >= DEFAULT_GUARD_SIZE+__default_guardsize)
__default_guardsize = attrp->_a_guardsize;
__release_ptc();
return 0;
}
int pthread_getattr_default_np(pthread_attr_t *attrp)
{
__acquire_ptc();
*attrp = (pthread_attr_t) {
._a_stacksize = __default_stacksize,
._a_guardsize = __default_guardsize,
};
__release_ptc();
return 0;
}
|