diff options
author | carlos <caiosignor@gmail.com> | 2020-04-20 10:29:25 -0300 |
---|---|---|
committer | João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com> | 2020-04-29 12:13:38 -0300 |
commit | 8b4b7d0e641691310536cbaa5a8cb47695003d92 (patch) | |
tree | b82eb9d8f9969c7c484007396e450b3003e99bdf | |
parent | 0c7d90a12cd4fefc02c39104e38ea21485afc364 (diff) | |
download | efl-8b4b7d0e641691310536cbaa5a8cb47695003d92.tar.gz |
meson.build verify if exists symbols thread_setname and thread_setaffinity for win32
-rw-r--r-- | src/lib/eina/eina_debug.c | 6 | ||||
-rw-r--r-- | src/lib/eina/eina_debug_timer.c | 4 | ||||
-rw-r--r-- | src/lib/eina/eina_inline_thread_win32.x | 9 | ||||
-rw-r--r-- | src/lib/eina/eina_thread.c | 4 | ||||
-rw-r--r-- | src/lib/eina/eina_thread_posix.h | 2 | ||||
-rw-r--r-- | src/lib/eina/meson.build | 10 |
6 files changed, 24 insertions, 11 deletions
diff --git a/src/lib/eina/eina_debug.c b/src/lib/eina/eina_debug.c index 78808656a2..2ce74cb190 100644 --- a/src/lib/eina/eina_debug.c +++ b/src/lib/eina/eina_debug.c @@ -71,8 +71,8 @@ #include "eina_debug_private.h" #include "eina_vpath.h" #include "eina_internal.h" -// #include "eina_thread.h" -#ifdef EINA_HAVE_THREAD_SETNAME +#include "eina_thread.h" +#ifdef EINA_HAVE_PTHREAD_SETNAME # ifndef __linux__ # include <pthread_np.h> # endif @@ -554,7 +554,7 @@ _monitor(void *_data) _opcodes_register_all(session); // set a name for this thread for system debugging -#ifdef EINA_HAVE_THREAD_SETNAME +#ifdef EINA_HAVE_PTHREAD_SETNAME || EINA_HAVE_WIN32_THREAD_SETNAME eina_thread_name_set(eina_thread_self(), "Edbg-mon"); #endif diff --git a/src/lib/eina/eina_debug_timer.c b/src/lib/eina/eina_debug_timer.c index 6521ef5281..9bbe7214f5 100644 --- a/src/lib/eina/eina_debug_timer.c +++ b/src/lib/eina/eina_debug_timer.c @@ -94,7 +94,7 @@ _monitor(void *_data EINA_UNUSED) event.events = EPOLLIN; ret = epoll_ctl(epfd, EPOLL_CTL_ADD, event.data.fd, &event); if (ret) perror("epoll_ctl/add"); -# ifdef EINA_HAVE_THREAD_SETNAME +# ifdef EINA_HAVE_PTHREAD_SETNAME || EINA_HAVE_WIN32_THREAD_SETNAME eina_thread_name_set(eina_thread_self(), "Edbg-tim"); # endif @@ -177,7 +177,7 @@ eina_debug_timer_add(unsigned int timeout_ms, Eina_Debug_Timer_Cb cb, void *data # endif pthread_sigmask(SIG_BLOCK, &newset, &oldset); #endif - int err = eina_thread_create(&_thread, EINA_THREAD_BACKGROUND, NULL, _monitor, NULL); + int err = eina_thread_create(&_thread, EINA_THREAD_BACKGROUND, NULL,(Eina_Thread_Cb)_monitor, NULL); #ifndef _WIN32 pthread_sigmask(SIG_SETMASK, &oldset, NULL); #endif diff --git a/src/lib/eina/eina_inline_thread_win32.x b/src/lib/eina/eina_inline_thread_win32.x index 8046dba0a8..4c01c394ab 100644 --- a/src/lib/eina/eina_inline_thread_win32.x +++ b/src/lib/eina/eina_inline_thread_win32.x @@ -102,8 +102,13 @@ _eina_thread_create(Eina_Thread *t, int affinity, void *(*func)(void *data), voi ret = (*t != NULL) ? EINA_TRUE : EINA_FALSE; - if (affinity >= 0 && ret) SetThreadAffinityMask(*t, (DWORD_PTR *)&affinity); - + if (affinity >= 0 && ret) + { + #ifdef EINA_HAVE_WIN32_THREAD_AFFINITY + SetThreadAffinityMask(*t, (DWORD_PTR *)&affinity); + #endif + } + return ret; } diff --git a/src/lib/eina/eina_thread.c b/src/lib/eina/eina_thread.c index c8fb773418..49984b2e33 100644 --- a/src/lib/eina/eina_thread.c +++ b/src/lib/eina/eina_thread.c @@ -41,7 +41,7 @@ #endif # include <string.h> -#if defined(EINA_HAVE_PTHREAD_AFFINITY) || defined(EINA_HAVE_THREAD_SETNAME) +#if defined(EINA_HAVE_PTHREAD_AFFINITY) || defined(EINA_HAVE_PTHREAD_SETNAME) # define cpu_set_t cpuset_t #endif @@ -117,7 +117,7 @@ eina_thread_join(Eina_Thread t) EAPI Eina_Bool eina_thread_name_set(Eina_Thread t, const char *name) { -#ifdef EINA_HAVE_THREAD_SETNAME +#if defined(EINA_HAVE_PTHREAD_SETNAME) || defined(EINA_HAVE_WIN32_THREAD_SETNAME) char buf[16]; if (name) { diff --git a/src/lib/eina/eina_thread_posix.h b/src/lib/eina/eina_thread_posix.h index d198e12f1e..470e5a359f 100644 --- a/src/lib/eina/eina_thread_posix.h +++ b/src/lib/eina/eina_thread_posix.h @@ -34,7 +34,7 @@ #define EINA_THREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS #define EINA_THREAD_CANCELED PTHREAD_CANCELED -#if defined(EINA_HAVE_PTHREAD_AFFINITY) || defined(EINA_HAVE_THREAD_SETNAME) +#if defined(EINA_HAVE_PTHREAD_AFFINITY) || defined(EINA_HAVE_PTHREAD_SETNAME) # ifndef __linux__ # include <pthread_np.h> # define cpu_set_t cpuset_t diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build index 71eda3d95c..5d52682d58 100644 --- a/src/lib/eina/meson.build +++ b/src/lib/eina/meson.build @@ -304,13 +304,21 @@ else endif if cc.has_header_symbol(pthread_np_header_file, pthread_setname_np_api, args : pthread_args) - eina_config.set('EINA_HAVE_THREAD_SETNAME', '1') + eina_config.set('EINA_HAVE_PTHREAD_SETNAME', '1') +endif + +if cc.has_header_symbol('precessthreadspi.h', 'SetThreadDescription') + eina_config.set('EINA_HAVE_WIN32_THREAD_SETNAME', '1') endif if cc.has_header_symbol(pthread_np_header_file, 'pthread_attr_setaffinity_np', args : pthread_args) eina_config.set('EINA_HAVE_PTHREAD_AFFINITY', '1') endif +if cc.has_header_symbol('WinBase.h', 'SetThreadAffinityMask') + eina_config.set('EINA_HAVE_WIN32_THREAD_AFFINITY', '1') +endif + if debug_threads or get_option('debug-threads') if cc.has_header_symbol('execinfo.h', 'backtrace') eina_config.set('EINA_HAVE_DEBUG_THREADS', '1') |