path: root/src/internal/pthread_impl.h
diff options
authorRich Felker <>2012-06-09 19:53:29 -0400
committerRich Felker <>2012-06-09 19:53:29 -0400
commit819006a88b9473872fee91135b06f4e23231d97e (patch)
treea123767e77980a5feeee0e05a21ea2fe2b2a2b8e /src/internal/pthread_impl.h
parentf457b1cb0d49f1b47bc7baf4bb516f1860816f03 (diff)
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.
Diffstat (limited to 'src/internal/pthread_impl.h')
1 files changed, 2 insertions, 1 deletions
diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h
index d67edf2f..0ce3c1e8 100644
--- a/src/internal/pthread_impl.h
+++ b/src/internal/pthread_impl.h
@@ -59,7 +59,8 @@ struct __timer {
#define _a_stacksize __u.__s[0]
#define _a_guardsize __u.__s[1]
-#define _a_detach __u.__i[2*__SU+0]
+#define _a_stackaddr __u.__s[2]
+#define _a_detach __u.__i[3*__SU+0]
#define _m_type __u.__i[0]
#define _m_lock __u.__i[1]
#define _m_waiters __u.__i[2]