When using the interrupt mode from the (example) code this error is returned over the memifErrChan:
EpollWait: %!(EXTRA syscall.Errno=interrupted system call)
This only happens when the traffic goes up (like 1Gbps), and even then its not very frequent. Still, this causes the StartPolling() to quit, and the channel dies.
As a quick fix I have changed the return to a continue and it seems to work without any issues. In addition my code changed the return nil in the example to only return if if pktLen > 0 is false so the loop keeps processing packets.
Ps. the handleEvent() should probably return the error from the interrupt function like this:return intf.onInterrupt(intf)
When using the interrupt mode from the (example) code this error is returned over the memifErrChan:
EpollWait: %!(EXTRA syscall.Errno=interrupted system call)
This only happens when the traffic goes up (like 1Gbps), and even then its not very frequent. Still, this causes the StartPolling() to quit, and the channel dies.As a quick fix I have changed the return to a continue and it seems to work without any issues. In addition my code changed the return nil in the example to only return if
if pktLen > 0
is false so the loop keeps processing packets.Ps. the handleEvent() should probably return the error from the interrupt function like this:
return intf.onInterrupt(intf)