From f7e917c1234bf24a0a23eeeb7d9ebe5f39948bb5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 2 May 2022 00:02:33 +0200 Subject: [PATCH] Potential fix for M1 x-thread events On M1, the cross-thread channel sets G_IO_PRI in addition to G_IO_IN this breaks various assumptions in receivers, which test for ~G_IO_IN as error condition. --- libs/pbd/crossthread.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/pbd/crossthread.cc b/libs/pbd/crossthread.cc index 9f183651ee..bf21d2befc 100644 --- a/libs/pbd/crossthread.cc +++ b/libs/pbd/crossthread.cc @@ -61,7 +61,7 @@ CrossThreadChannel::set_receive_handler (sigc::slot s) void CrossThreadChannel::attach (Glib::RefPtr context) { - receive_source = g_io_create_watch (receive_channel, GIOCondition(G_IO_IN|G_IO_PRI|G_IO_ERR|G_IO_HUP|G_IO_NVAL)); + receive_source = g_io_create_watch (receive_channel, GIOCondition(G_IO_IN | G_IO_ERR | G_IO_HUP)); g_source_set_callback (receive_source, G_SOURCE_FUNC(cross_thread_channel_call_receive_slot), this, NULL); g_source_attach (receive_source, context->gobj());