From 0e3e555caeabf7e1a5e53ad8be70210ee3a05544 Mon Sep 17 00:00:00 2001 From: Kazuki Sakamoto Date: Tue, 23 Aug 2016 23:28:55 -0700 Subject: [PATCH] Revert "Use global queue in order to catch read event from channel" --- src/MacVim/gui_macvim.m | 21 +++++---------------- src/channel.c | 6 ++++-- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/MacVim/gui_macvim.m b/src/MacVim/gui_macvim.m index 8fa2d724bc..e0858f780a 100644 --- a/src/MacVim/gui_macvim.m +++ b/src/MacVim/gui_macvim.m @@ -2257,26 +2257,16 @@ static int vimModMaskToEventModifierFlags(int mods) // -- Channel Support ------------------------------------------------------ -static NSMutableSet *MMChannels; - void * gui_macvim_add_channel(channel_T *channel, int part) { - if (!MMChannels) - MMChannels = [NSMutableSet new]; - - int fd = channel->ch_part[part].ch_fd; - dispatch_queue_t q = - dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); dispatch_source_t s = - dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, fd, 0, q); - [MMChannels addObject:s]; + dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, + channel->ch_part[part].ch_fd, + 0, + dispatch_get_main_queue()); dispatch_source_set_event_handler(s, ^{ - dispatch_sync(dispatch_get_main_queue(), ^{ - if ([MMChannels containsObject:s]) { - channel_read(channel, part, "gui_macvim_add_channel"); - } - }); + channel_read(channel, part, "gui_macvim_add_channel"); }); dispatch_resume(s); return s; @@ -2286,7 +2276,6 @@ gui_macvim_add_channel(channel_T *channel, int part) gui_macvim_remove_channel(void *cookie) { dispatch_source_t s = (dispatch_source_t)cookie; - [MMChannels removeObject:s]; dispatch_source_cancel(s); dispatch_release(s); } diff --git a/src/channel.c b/src/channel.c index 3128772ff2..5fe28c0c9b 100644 --- a/src/channel.c +++ b/src/channel.c @@ -599,9 +599,11 @@ channel_gui_register_one(channel_T *channel, int part) # endif # else # ifdef FEAT_GUI_MACVIM + /* Tell Core Foundation we are interested in being called when there + * is input on the editor connection socket. */ if (channel->ch_part[part].ch_inputHandler == 0) - channel->ch_part[part].ch_inputHandler = - gui_macvim_add_channel(channel, part); + channel->ch_part[part].ch_inputHandler = gui_macvim_add_channel( + channel, part); # endif # endif # endif