summaryrefslogtreecommitdiff
path: root/src/thread.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2018-10-17 18:19:47 +0300
committerEli Zaretskii <eliz@gnu.org>2018-10-17 18:19:47 +0300
commit73567432329a245b2eb02e4c61adea2c8eab6b3a (patch)
tree2dbdfc862dc4b4dbea44b2f613720c50915406cc /src/thread.c
parent134ba45bf0c11048c44a46c11d5dc8da12ca4d3e (diff)
downloademacs-73567432329a245b2eb02e4c61adea2c8eab6b3a.tar.gz
Avoid assertion violation when comparing with main-thread
* src/thread.c (unmark_main_thread): New function. * src/lisp.h (unmark_main_thread): Prototype it. * src/alloc.c (garbage_collect_1): Call it after sweeping. (Bug#33073) * test/src/thread-tests.el (threads-test-bug33073): New test.
Diffstat (limited to 'src/thread.c')
-rw-r--r--src/thread.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/thread.c b/src/thread.c
index fc933440fcc..3674af0e47b 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -656,6 +656,12 @@ mark_threads (void)
flush_stack_call_func (mark_threads_callback, NULL);
}
+void
+unmark_main_thread (void)
+{
+ main_thread.header.size &= ~ARRAY_MARK_FLAG;
+}
+
static void