Mercurial > dwindows
changeset 96:baaf4b04d284
Fixed a deadlock when locking a mutex from an event handler on FreeBSD.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 05 Jul 2002 01:32:37 +0000 |
parents | 636c37ca7238 |
children | 24cf41bb75ff |
files | gtk/dw.c |
diffstat | 1 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk/dw.c Thu May 30 07:47:28 2002 +0000 +++ b/gtk/dw.c Fri Jul 05 01:32:37 2002 +0000 @@ -4309,7 +4309,17 @@ */ void dw_mutex_lock(HMTX mutex) { + /* If we are being called from an event handler we must release + * the GTK mutex so we don't deadlock. + */ + if(pthread_self() == _dw_thread) + gdk_threads_leave(); + pthread_mutex_lock(&mutex); + + /* And of course relock it when we have acquired the mutext */ + if(pthread_self() == _dw_thread) + gdk_threads_enter(); } /*