eina: add Eina_Thread API.
[profile/ivi/eina.git] / src / lib / eina_main.c
index 2dc9b30..fb2bb0d 100644 (file)
@@ -156,6 +156,8 @@ EAPI Eina_Inlist *_eina_tracking = NULL;
    S(file);
    S(prefix);
    S(value);
+   S(tmpstr);
+   S(thread);
 /* no model for now
    S(model);
  */
@@ -196,6 +198,8 @@ static const struct eina_desc_setup _eina_desc_setup[] = {
    S(file),
    S(prefix),
    S(value),
+   S(tmpstr),
+   S(thread)
 /* no model for now
    S(model)
  */
@@ -410,18 +414,25 @@ EAPI Eina_Bool
 eina_main_loop_is(void)
 {
 #ifdef EFL_HAVE_THREADS
-   pid_t pid = getpid();
+  pid_t pid;
 
 # ifdef _WIN32
+   if (_eina_main_loop == GetCurrentThreadId())
+     return EINA_TRUE;
+# else
+   if (pthread_equal(_eina_main_loop, pthread_self()))
+     return EINA_TRUE;
+# endif
+
+   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
+#else
    if (pid != _eina_pid)
      {
         /* This is in case of a fork, but don't like the solution */
@@ -429,11 +440,9 @@ eina_main_loop_is(void)
         _eina_main_loop = pthread_self();
         return EINA_TRUE;
      }
-
-   if (pthread_equal(_eina_main_loop, pthread_self()))
-     return EINA_TRUE;
-# endif
 #endif
+#endif
+
    return EINA_FALSE;
 }