My initial conclusion about go-udev being the culprit was premature, the socket closing & quit channel code looks fine after all, the problem lies somewhere else and may be something in the go runtime stack and it's very unclear for the time being.
My initial conclusion about go-udev being the culprit was premature, the socket closing & quit channel code looks fine after all, the problem lies somewhere else and may be something in the go runtime stack and it's very unclear for the time being.