summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/os/os_thread.h
diff options
context:
space:
mode:
authorPatrick Rudolph <[email protected]>2016-10-26 17:11:00 +0200
committerAxel Davy <[email protected]>2016-12-20 23:44:23 +0100
commitac2927335bc7cd4994d2fc0906eb328773b1f923 (patch)
tree3dc5241c7c4dc691ad80852c6aab42ef90f1aee1 /src/gallium/auxiliary/os/os_thread.h
parent2c371a25a8800883dda353853cca6b5a2ba71bb4 (diff)
st/nine: Implement gallium nine CSMT
Use an offloading thread for all nine_context functions. Macros are used to ease the reading of the code. Signed-off-by: Patrick Rudolph <[email protected]> Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/os/os_thread.h')
-rw-r--r--src/gallium/auxiliary/os/os_thread.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/os/os_thread.h b/src/gallium/auxiliary/os/os_thread.h
index ec8adbc75bb..21faf4b3beb 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -97,6 +97,17 @@ static inline void pipe_thread_setname( const char *name )
}
+static inline int pipe_thread_is_self( pipe_thread thread )
+{
+#if defined(HAVE_PTHREAD)
+# if defined(__GNU_LIBRARY__) && defined(__GLIBC__) && defined(__GLIBC_MINOR__) && \
+ (__GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 12))
+ return pthread_equal(pthread_self(), thread);
+# endif
+#endif
+ return 0;
+}
+
/* pipe_mutex
*/
typedef mtx_t pipe_mutex;