# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1573733334 0 # Node ID 2cbbbc850b8dfc9fd2a9505561687d835bdbdee4 # Parent 10ca3e9d199f5655493ccf87dd3adf8c9907bcba GTK3: Fix deadlock when calling dw_messagebox() from HTML_RESULT event handler. It isn't clear to me why this is necessary but it fixed the deadlock so committing for now. diff -r 10ca3e9d199f -r 2cbbbc850b8d gtk3/dw.c --- a/gtk3/dw.c Tue Nov 12 00:26:10 2019 +0000 +++ b/gtk3/dw.c Thu Nov 14 12:08:54 2019 +0000 @@ -1211,7 +1211,9 @@ int (*htmlresultfunc)(HWND, int, char *, void *, void *) = NULL; gint handlerdata = GPOINTER_TO_INT(g_object_get_data(object, "_dw_html_result_id")); void *user_data = NULL; - + pthread_t saved_thread = _dw_thread; + + _dw_thread = (pthread_t)-1; if(handlerdata) { SignalHandler work; @@ -1231,6 +1233,7 @@ if(htmlresultfunc) htmlresultfunc((HWND)object, DW_ERROR_UNKNOWN, error->message, user_data, script_data); g_error_free (error); + _dw_thread = saved_thread; return; } @@ -1271,6 +1274,7 @@ htmlresultfunc((HWND)object, DW_ERROR_UNKNOWN, NULL, user_data, script_data); webkit_javascript_result_unref (js_result); #endif + _dw_thread = saved_thread; } #ifdef USE_WEBKIT