From 49931fbf056ec1036693c669cec8cde4ea8c95fe Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 25 Nov 2014 01:00:18 +0000 Subject: Separate events between normal and urgent ones Run urgent ones while executing %sh blocks. Fixes #236 --- src/buffer_utils.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/buffer_utils.cc') diff --git a/src/buffer_utils.cc b/src/buffer_utils.cc index 12ffae19..33b07b57 100644 --- a/src/buffer_utils.cc +++ b/src/buffer_utils.cc @@ -105,7 +105,10 @@ Buffer* create_fifo_buffer(String name, int fd, bool scroll) ValueId fifo_watcher_id = s_fifo_watcher_id; std::unique_ptr watcher( - new FDWatcher(fd, [buffer, scroll, fifo_watcher_id](FDWatcher& watcher) { + new FDWatcher(fd, [buffer, scroll, fifo_watcher_id](FDWatcher& watcher, EventMode mode) { + if (mode != EventMode::Normal) + return; + constexpr size_t buffer_size = 2048; // if we read data slower than it arrives in the fifo, limiting the // iteration number allows us to go back go back to the event loop and -- cgit v1.2.3