aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-07-02 14:28:35 -0400
committerMike Blumenkrantz <zmike@samsung.com>2018-07-03 09:48:19 -0400
commitfb70dc535ab607e82b713bb2de924ed26a5d7327 (patch)
treebab2fb290004d8563dcbcfd45f1882bd7f37a700
parenteina/debug: rework session thread destruction to avoid deadlock on shutdown (diff)
downloadefl-devs/discomfitor/testinggg.tar.gz
eina/debug: remove global lock for session list accessdevs/discomfitor/testinggg
this list is now only accessed from the main thread so there's no reason to have a lock for it
-rw-r--r--src/lib/eina/eina_debug.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/src/lib/eina/eina_debug.c b/src/lib/eina/eina_debug.c
index dbce08d04a..4d70454d0a 100644
--- a/src/lib/eina/eina_debug.c
+++ b/src/lib/eina/eina_debug.c
@@ -107,7 +107,6 @@ extern Eina_Bool eina_mempool_init(void);
extern Eina_Bool eina_list_init(void);
extern Eina_Spinlock _eina_debug_thread_lock;
-static Eina_Spinlock _thread_delete_lock;
static Eina_List *sessions;
static Eina_Bool _debug_disabled = EINA_FALSE;
@@ -465,9 +464,7 @@ _session_create(int fd)
session->dispatch_cb = eina_debug_dispatch;
session->fd = fd;
eina_lock_new(&session->lock);
- eina_spinlock_take(&_thread_delete_lock);
sessions = eina_list_append(sessions, session);
- eina_spinlock_release(&_thread_delete_lock);
// start the monitor thread
_thread_start(session);
return session;
@@ -721,7 +718,6 @@ eina_debug_init(void)
// set up thread things
eina_spinlock_new(&_eina_debug_lock);
eina_spinlock_new(&_eina_debug_thread_lock);
- eina_spinlock_new(&_thread_delete_lock);
self = pthread_self();
_eina_debug_thread_mainloop_set(&self);
_eina_debug_thread_add(&self);
@@ -748,10 +744,8 @@ eina_debug_shutdown(void)
Eina_Debug_Session *session;
pthread_t self = pthread_self();
- eina_spinlock_take(&_thread_delete_lock);
EINA_LIST_FREE(sessions, session)
eina_debug_session_terminate(session);
- eina_spinlock_release(&_thread_delete_lock);
_eina_debug_timer_shutdown();
_eina_debug_bt_shutdown();
@@ -759,7 +753,6 @@ eina_debug_shutdown(void)
_eina_debug_thread_del(&self);
eina_spinlock_free(&_eina_debug_lock);
eina_spinlock_free(&_eina_debug_thread_lock);
- eina_spinlock_free(&_thread_delete_lock);
eina_threads_shutdown();
return EINA_TRUE;
}