summaryrefslogtreecommitdiff
path: root/Examples/test-suite/director_thread.i
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2018-10-08 21:29:11 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2018-10-08 21:38:41 +0100
commit3195c3e4dac605aaa9ee877ea956151bc3e15830 (patch)
tree9e6237b4adcb66027c70619c9ad7fca785054904 /Examples/test-suite/director_thread.i
parent989f4289c16f7d298e9c0f5c63b58248771aaa67 (diff)
downloadswig-3195c3e4dac605aaa9ee877ea956151bc3e15830.tar.gz
Java directors - more generic thread name setting
Activated if a user sets SWIG_JAVA_USE_THREAD_NAME. Implementations provided for linux/android/macos/unix. A user's implementation will be used if SWIG_JAVA_GET_THREAD_NAME is defined. It must implement the function: namespace Swig { SWIGINTERN int GetThreadName(char *name, size_t len); }
Diffstat (limited to 'Examples/test-suite/director_thread.i')
-rw-r--r--Examples/test-suite/director_thread.i20
1 files changed, 19 insertions, 1 deletions
diff --git a/Examples/test-suite/director_thread.i b/Examples/test-suite/director_thread.i
index 260bce774..cb999ecc4 100644
--- a/Examples/test-suite/director_thread.i
+++ b/Examples/test-suite/director_thread.i
@@ -7,6 +7,11 @@
%module(directors="1") director_thread
#endif
+%begin %{
+#define SWIG_JAVA_USE_THREAD_NAME
+//#define DEBUG_DIRECTOR_THREAD_NAME
+%}
+
%{
#ifdef _WIN32
#include <windows.h>
@@ -89,10 +94,23 @@ extern "C" {
fprintf(stderr, "pthread_create failed in run()\n");
assert(0);
}
+ int setname = pthread_setname_np(thread, "MyThreadName");
+ if (setname != 0) {
+ fprintf(stderr, "pthread_setname_np failed in run()\n");
+ assert(0);
+ }
%#endif
MilliSecondSleep(500);
}
-
+
+ static bool namedThread() {
+%#ifdef _WIN32
+ return false;
+%#else
+ return true;
+%#endif
+ }
+
virtual void do_foo() {
val += 1;
}