forked from enlightenment/efl
parent
56f0311cd3
commit
bdde82fda3
|
@ -87,14 +87,12 @@ EAPI Eina_Error EINA_ERROR_NOT_MAIN_LOOP = 0;
|
||||||
static const char EINA_ERROR_NOT_MAIN_LOOP_STR[] = "Main loop thread check failed.";
|
static const char EINA_ERROR_NOT_MAIN_LOOP_STR[] = "Main loop thread check failed.";
|
||||||
|
|
||||||
#ifdef EFL_HAVE_THREADS
|
#ifdef EFL_HAVE_THREADS
|
||||||
# ifdef _WIN32_WCE
|
# ifdef _WIN32
|
||||||
EAPI HANDLE _eina_main_loop;
|
EAPI DWORD _eina_main_loop;
|
||||||
# elif defined(_WIN32)
|
|
||||||
EAPI HANDLE _eina_main_loop;
|
|
||||||
# else
|
# else
|
||||||
EAPI pthread_t _eina_main_loop;
|
EAPI pthread_t _eina_main_loop;
|
||||||
static pid_t _eina_pid;
|
|
||||||
# endif
|
# endif
|
||||||
|
static pid_t _eina_pid;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EINA_HAVE_DEBUG_THREADS
|
#ifdef EINA_HAVE_DEBUG_THREADS
|
||||||
|
@ -229,14 +227,12 @@ eina_init(void)
|
||||||
EINA_ERROR_NOT_MAIN_LOOP_STR);
|
EINA_ERROR_NOT_MAIN_LOOP_STR);
|
||||||
|
|
||||||
#ifdef EFL_HAVE_THREADS
|
#ifdef EFL_HAVE_THREADS
|
||||||
# ifdef _WIN32_CE
|
# ifdef _WIN32
|
||||||
_eina_main_loop = (HANDLE) GetCurrentThreadId();
|
_eina_main_loop = GetCurrentThreadId();
|
||||||
# elif defined (_WIN32)
|
|
||||||
_eina_main_loop = (HANDLE) GetCurrentThreadId();
|
|
||||||
# else
|
# else
|
||||||
_eina_main_loop = pthread_self();
|
_eina_main_loop = pthread_self();
|
||||||
_eina_pid = getpid();
|
|
||||||
# endif
|
# endif
|
||||||
|
_eina_pid = getpid();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EINA_HAVE_DEBUG_THREADS
|
#ifdef EINA_HAVE_DEBUG_THREADS
|
||||||
|
@ -353,18 +349,18 @@ EAPI Eina_Bool
|
||||||
eina_main_loop_is(void)
|
eina_main_loop_is(void)
|
||||||
{
|
{
|
||||||
#ifdef EFL_HAVE_THREADS
|
#ifdef EFL_HAVE_THREADS
|
||||||
/* FIXME: need to check how to do this on windows */
|
|
||||||
# ifdef _WIN32_CE
|
|
||||||
if (_eina_main_loop == (HANDLE) GetCurrentThreadId())
|
|
||||||
return EINA_TRUE;
|
|
||||||
return EINA_FALSE;
|
|
||||||
# elif defined(_WIN32)
|
|
||||||
if (_eina_main_loop == (HANDLE) GetCurrentThreadId())
|
|
||||||
return EINA_TRUE;
|
|
||||||
return EINA_FALSE;
|
|
||||||
# else
|
|
||||||
pid_t pid = getpid();
|
pid_t pid = getpid();
|
||||||
|
|
||||||
|
# ifdef _WIN32
|
||||||
|
if (pid != _eina_pid)
|
||||||
|
{
|
||||||
|
_eina_pid = pid;
|
||||||
|
_eina_main_loop = GetCurrentThreadId();
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
if (_eina_main_loop == GetCurrentThreadId())
|
||||||
|
return EINA_TRUE;
|
||||||
|
# else
|
||||||
if (pid != _eina_pid)
|
if (pid != _eina_pid)
|
||||||
{
|
{
|
||||||
/* This is in case of a fork, but don't like the solution */
|
/* This is in case of a fork, but don't like the solution */
|
||||||
|
@ -384,8 +380,14 @@ eina_main_loop_is(void)
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_main_loop_define(void)
|
eina_main_loop_define(void)
|
||||||
{
|
{
|
||||||
|
#ifdef EFL_HAVE_THREADS
|
||||||
_eina_pid = getpid();
|
_eina_pid = getpid();
|
||||||
|
# ifdef _WIN32
|
||||||
|
_eina_main_loop = GetCurrentThreadId();
|
||||||
|
# else
|
||||||
_eina_main_loop = pthread_self();
|
_eina_main_loop = pthread_self();
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue