Now keyboard events will be handled in order, but the consequence is computation-intense may need to be moved to a seperate goroutine otherwise it may delay the next event call.
`func uiEvt(e termbox.Event) Event` used to change the type of termbox.Event to Event by
using some pointer-cast magic[1], which could cause an overflow if `termbox.Event` changes
its structure.
I'd rather just have `type Event termbox.Event` but that would break backwards compatibility.
Warning: A buffer overflow could cause a serious security issue but it is very unlikely that
anyone could exploit that (though not impossbible). You'd need to push a upstream update to
termbox, which would tweak termbox.Event's structure. Still, this issue should be fixed and
unsafe should never be used.
[1] it used to get the address of termbox.Event and just cast a Event pointer
Port termbox-go Event
Hide away termbox-go event dependency
Add Event channel multiplexer
Adjuest examples
Next event system commit will work on fully concurrency on a different branch, master
will stay on single rountine