When a signal is received while polling on a socket, the interrupt is apparently propagated up to the application, and it is the application's responsibility to handle it correctly. Qt apparently causes signals to be sent in various situations. The end is result is that jsonrpc2_zeromq basically crashes when used in conjunction with Qt.
This is basically the same issue as reported on ipython: ipython/ipython#499