efl: revert r80290 as it bork the world.
authorCedric BAIL <cedric.bail@free.fr>
Thu, 6 Dec 2012 03:02:47 +0000 (03:02 +0000)
committerCedric BAIL <cedric.bail@free.fr>
Thu, 6 Dec 2012 03:02:47 +0000 (03:02 +0000)
SVN revision: 80296

configure.ac
src/lib/ecore/ecore_private.h

index 0a6ae71..e0d942f 100644 (file)
@@ -1965,6 +1965,20 @@ AC_ARG_ENABLE([g-main-loop],
    ],
    [want_g_main_loop="no"])
 
+# thread safety
+
+AC_ARG_ENABLE([thread-safety],
+   [AC_HELP_STRING([--enable-thread-safety],
+       [enable thread safety. @<:@default=disabled@:>@])],
+   [
+    if test "x${enableval}" = "xyes" ; then
+       want_thread_safety="yes"
+    else
+       want_thread_safety="no"
+    fi
+   ],
+   [want_thread_safety="no"])
+
 # epoll
 
 AC_ARG_ENABLE([epoll],
@@ -1992,6 +2006,10 @@ if test "x${with_glib}" = "xyes" || test "x${with_glib}" = "xalways" ; then
    want_glib="yes"
 fi
 
+if test "x${want_thread_safety}" = "xyes" ; then
+   AC_DEFINE([HAVE_THREAD_SAFETY], [1], [Define to enable thread safety])
+fi
+
 want_ecore_timer_dump="no"
 if test "x${build_profile}" = "xdebug" && test "x${ac_cv_func_backtrace}" = "xyes"; then
    want_ecore_timer_dump="yes"
@@ -4130,6 +4148,7 @@ echo "    Tiled 32BPP rotate......: $have_tile_rotate"
 echo
 
 echo "Ecore:"
+echo "  Thread safety..............: $want_thread_safety"
 echo "  GLib support...............: $with_glib"
 echo "  Use g_main_loop............: $want_g_main_loop"
 echo "  Gathering memory statistic.: $ac_cv_func_mallinfo"
index 7e7ff3a..f0add82 100644 (file)
@@ -246,7 +246,12 @@ extern Eina_Lock _ecore_main_loop_lock;
 static inline void
 _ecore_lock(void)
 {
+#ifdef HAVE_THREAD_SAFETY
    eina_lock_take(&_ecore_main_loop_lock);
+#else
+   /* at least check we're not being called from a thread */
+   EINA_MAIN_LOOP_CHECK_RETURN;
+#endif
    _ecore_main_lock_count++;
    /* assert(_ecore_main_lock_count == 1); */
 }
@@ -256,7 +261,9 @@ _ecore_unlock(void)
 {
    _ecore_main_lock_count--;
    /* assert(_ecore_main_lock_count == 0); */
+#ifdef HAVE_THREAD_SAFETY
    eina_lock_release(&_ecore_main_loop_lock);
+#endif
 }
 
 /*