Summary: fix, another bug 131 attempt, dispatch the
authorSebastian Freundt <freundt@ga-group.nl>
Tue, 10 Jan 2012 09:23:10 +0000 (09:23 +0000)
committerSebastian Freundt <freundt@ga-group.nl>
Tue, 10 Jan 2012 09:23:10 +0000 (09:23 +0000)
Keywords: bug fix #131

* src/events/worker-asyneq.c: dispatch directly

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
src/events/worker-asyneq.c

index faff894..c8f2c1c 100644 (file)
@@ -128,9 +128,18 @@ eq_worker_work_finished(Lisp_Object job)
        wfev = make_empty_event();
        XEVENT(wfev)->event_type = work_finished_event;
        XEVENT(wfev)->event.work_finished.job = job;
+#if 0
+       /* the original idea was to enqueue the event and let the dispatcher
+        * pick it up at some point in a FIFO fashion
+        * however that's gone up the drain with bug #131 ... */
        eq_enqueue(asyneq, wfev);
+       asyneq_handle_event(wfev);
+#else  /* !0 */
+       /* ... so let's try and dispatch the event directly
+        * while he's gc pro'd of course */
+       Fdispatch_event(wfev);
+#endif /* 0 */
        UNGCPRO;
-       asyneq_handle_event(asyneq);
        return;
 }