source:
azure_iot_hub_mbedtls/trunk/musl-1.1.18/src/thread/pthread_getattr_np.c@
413
Last change on this file since 413 was 398, checked in by , 5 years ago | |
---|---|
|
|
File size: 576 bytes |
Line | |
---|---|
1 | #define _GNU_SOURCE |
2 | #include "pthread_impl.h" |
3 | #include "libc.h" |
4 | #include <sys/mman.h> |
5 | |
6 | int pthread_getattr_np(pthread_t t, pthread_attr_t *a) |
7 | { |
8 | *a = (pthread_attr_t){0}; |
9 | a->_a_detach = !!t->detached; |
10 | if (t->stack) { |
11 | a->_a_stackaddr = (uintptr_t)t->stack; |
12 | a->_a_stacksize = t->stack_size; |
13 | } else { |
14 | char *p = (void *)libc.auxv; |
15 | size_t l = PAGE_SIZE; |
16 | p += -(uintptr_t)p & PAGE_SIZE-1; |
17 | a->_a_stackaddr = (uintptr_t)p; |
18 | while (mremap(p-l-PAGE_SIZE, PAGE_SIZE, 2*PAGE_SIZE, 0)==MAP_FAILED && errno==ENOMEM) |
19 | l += PAGE_SIZE; |
20 | a->_a_stacksize = l; |
21 | } |
22 | return 0; |
23 | } |
Note:
See TracBrowser
for help on using the repository browser.