add pthread_attr_setstack interface (and get)
i originally omitted these (optional, per POSIX) interfaces because i considered them backwards implementation details. however, someone later brought to my attention a fairly legitimate use case: allocating thread stacks in memory that's setup for sharing and/or fast transfer between CPU and GPU so that the thread can move data to a GPU directly from automatic-storage buffers without having to go through additional buffer copies. perhaps there are other situations in which these interfaces are useful too.
This commit is contained in:
parent
f457b1cb0d
commit
819006a88b
4 changed files with 39 additions and 10 deletions
10
src/thread/pthread_attr_getstack.c
Normal file
10
src/thread/pthread_attr_getstack.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#include "pthread_impl.h"
|
||||
|
||||
int pthread_attr_getstack(const pthread_attr_t *a, void **addr, size_t *size)
|
||||
{
|
||||
if (!a->_a_stackaddr)
|
||||
return EINVAL;
|
||||
*size = a->_a_stacksize + DEFAULT_STACK_SIZE;
|
||||
*addr = (void *)(a->_a_stackaddr - *size);
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue