From 79130e26693b50bd413e1a1bcbe7679be4df1129 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Wed, 17 Jan 2018 17:13:25 +0100 Subject: [PATCH] fix: using non blocking channel write ops in order not to spawn too many go routines and fill the stack (fixes #20) --- session/events.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/session/events.go b/session/events.go index 0ad40d4b..3479a6ee 100644 --- a/session/events.go +++ b/session/events.go @@ -59,7 +59,10 @@ func (p *EventPool) Add(tag string, data interface{}) { e := NewEvent(tag, data) p.events = append([]Event{e}, p.events...) - go func() { p.NewEvents <- e }() + select { + case p.NewEvents <- e: + default: + } } func (p *EventPool) Log(level int, format string, args ...interface{}) {