It seems like the usage of this is limited to Ctrl-C on console applications. I currently have adopted the more conservative route of immediately re-attempting the call (a limited number of times). If only non-Windows console apps will be producing this error code then I'd be fine with just translating it directly into an exception.
I added a symbol class, which reads out the values defined by the native library. Many of these already exist as constants and enums; it would be best to validate that that the static values match those reported by the native library, in order to check that the versions match.
This change effectively merges the socket objects and applies a uniform "Nanomsg" class name prefix.
Notable points:
EINTR handling. Martin has a fair amount about this on his blog:
http://250bpm.com/blog:12
It seems like the usage of this is limited to Ctrl-C on console applications. I currently have adopted the more conservative route of immediately re-attempting the call (a limited number of times). If only non-Windows console apps will be producing this error code then I'd be fine with just translating it directly into an exception.
I added a symbol class, which reads out the values defined by the native library. Many of these already exist as constants and enums; it would be best to validate that that the static values match those reported by the native library, in order to check that the versions match.