From 9dd9b0ffecf01f8f0847795eb8dc8635725d4657 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 24 Jan 2020 18:20:04 -0500 Subject: [PATCH] fix(*) handle closed channel to allow plugins to terminate processing (#16) --- event.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/event.go b/event.go index 32b5b7e..5e41585 100644 --- a/event.go +++ b/event.go @@ -59,12 +59,16 @@ func (s *PluginServer) HandleEvent(in StartEventData, out *StepData) error { go func() { _ = <-ipc h(event.pdk) - ipc <- "ret" + + func() { + defer func() { recover() }() + ipc <- "ret" + }() s.lock.Lock() + defer s.lock.Unlock() event.instance.lastEvent = time.Now() delete(s.events, event.id) - s.lock.Unlock() }() ipc <- "run" // kickstart the handler