forked from enlightenment/efl
parent
cfae43f754
commit
c73f0f9cf5
|
@ -73,6 +73,18 @@ EAPI extern pthread_mutex_t _eina_tracking_lock;
|
||||||
EAPI extern Eina_Inlist *_eina_tracking;
|
EAPI extern Eina_Inlist *_eina_tracking;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
eina_lock_debug(const Eina_Lock *mutex)
|
||||||
|
{
|
||||||
|
#ifdef EINA_HAVE_DEBUG_THREADS
|
||||||
|
printf("lock %p, locked: %i, by %i\n",
|
||||||
|
mutex, (int)mutex->locked, (int)mutex->lock_thread_id);
|
||||||
|
backtrace_symbols_fd((void **)mutex->lock_bt, mutex->lock_bt_num, 1);
|
||||||
|
#else
|
||||||
|
(void) mutex;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static inline Eina_Bool
|
static inline Eina_Bool
|
||||||
eina_lock_new(Eina_Lock *mutex)
|
eina_lock_new(Eina_Lock *mutex)
|
||||||
{
|
{
|
||||||
|
@ -159,7 +171,9 @@ eina_lock_take(Eina_Lock *mutex)
|
||||||
else if (ok == EDEADLK)
|
else if (ok == EDEADLK)
|
||||||
{
|
{
|
||||||
printf("ERROR ERROR: DEADLOCK on lock %p\n", mutex);
|
printf("ERROR ERROR: DEADLOCK on lock %p\n", mutex);
|
||||||
|
eina_lock_debug(mutex);
|
||||||
ret = EINA_LOCK_DEADLOCK; // magic
|
ret = EINA_LOCK_DEADLOCK; // magic
|
||||||
|
if (_eina_threads_debug) abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef EINA_HAVE_DEBUG_THREADS
|
#ifdef EINA_HAVE_DEBUG_THREADS
|
||||||
|
@ -251,18 +265,6 @@ eina_lock_release(Eina_Lock *mutex)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
|
||||||
eina_lock_debug(const Eina_Lock *mutex)
|
|
||||||
{
|
|
||||||
#ifdef EINA_HAVE_DEBUG_THREADS
|
|
||||||
printf("lock %p, locked: %i, by %i\n",
|
|
||||||
mutex, (int)mutex->locked, (int)mutex->lock_thread_id);
|
|
||||||
backtrace_symbols_fd((void **)mutex->lock_bt, mutex->lock_bt_num, 1);
|
|
||||||
#else
|
|
||||||
(void) mutex;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline Eina_Bool
|
static inline Eina_Bool
|
||||||
eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex)
|
eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue