github cminyard/gensio v2.8.6
Gensio 2.8.6

latest releases: v2.8.9, v2.8.8, v2.8.7...
18 days ago

I spent some quality time with gensio on various platforms, except for Linux, and fixed a number of issues and added some features:

  • Lots of fixes to unix sockets.
  • The addition of unix stream sockets to Windows.
  • Unix datagram and seqpacket sockets are now supported. seqpacket is like the normal stream sockets, just with packet support. datagram works like UDP, sort of. See the docs for details.
  • For older systems and newer systems whose pselect() operation is non-atomic (BSDs, MacOS) there were race conditions and some issues. Most should all be fixed now. There is still a race around global signals, but I'm not sure there's much I can do about it.
  • However, For MacOS and later BSDs, kevent() is now supported. It still has the broken pselect() issue, as kevent doesn't even take a sigmask parameters, but it has another way to handle signals, so using kevent() should solve all the race isues around signals on those platforms.
  • External threads doing gensio calls will now have their signal masks fixed up to work properly with gensio. This hopefully won't cause issues, but it was definitely an issue if it was done, as sometimes happens in go programs.

Lots of other little fixes and tweaks. See the git log for details.

You should upgrade if you can, especially on MacOS.

Don't miss a new gensio release

NewReleases is sending notifications on new releases.