errot_t exception is raised if:
1) there is a thread which waits in socket_t::recv
2) context_t::close method is called from the main thread (context was previously created in the main thread).
I think that the root of the issue is ETERM error code which is not handled in socket_t::recv method.
Ubuntu