]> source.dussan.org Git - rspamd.git/commitdiff
Fix deadlock in lua HTTP bindings.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 22 Aug 2012 14:19:21 +0000 (18:19 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 22 Aug 2012 14:19:21 +0000 (18:19 +0400)
src/lua/lua_http.c

index 8f85ebee112cb754e13b098abf81228513d1713d..3fa5da2ab23e6b6f5a4a1f3130d1b3eed45cef3e 100644 (file)
@@ -115,12 +115,12 @@ lua_http_push_error (gint code, struct lua_http_ud *ud)
                g_list_free (ud->headers);
                ud->headers = NULL;
        }
-
-       ud->parser_state = 3;
-       remove_normal_event (ud->s, lua_http_fin, ud);
        if (need_unlock) {
                g_mutex_unlock (lua_mtx);
        }
+       ud->parser_state = 3;
+       remove_normal_event (ud->s, lua_http_fin, ud);
+
 }
 
 static void
@@ -175,10 +175,11 @@ lua_http_push_reply (f_str_t *in, struct lua_http_ud *ud)
                ud->headers = NULL;
        }
 
-       remove_normal_event (ud->s, lua_http_fin, ud);
        if (need_unlock) {
                g_mutex_unlock (lua_mtx);
        }
+       remove_normal_event (ud->s, lua_http_fin, ud);
+
 }
 
 /*