In the current implementation, when a SUB provider is restarted, the library just hangs without detecting connection loss. This happens because on disconnect a client is kicked out of the queue, as since for all the socket queues block_on_no_clients is set to true, it hangs indefinitely.
I'm unsure what would be the effect of setting block_on_no_clients to false globally (though it seems reasonable), so in this PR add an ability to override this value is introduced via SocketOptions.
In the current implementation, when a SUB provider is restarted, the library just hangs without detecting connection loss. This happens because on disconnect a client is kicked out of the queue, as since for all the socket queues block_on_no_clients is set to true, it hangs indefinitely.
I'm unsure what would be the effect of setting block_on_no_clients to false globally (though it seems reasonable), so in this PR add an ability to override this value is introduced via SocketOptions.