You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In trying to use the ZMQ_DISH draft socket type, I am unable to use getsockopt with ZMQ_FD to get the underlying file descriptor for usage with an external event system. This appears to be the case because _thread_safe is set to true in the parent socket_base_t constructor here. Setting _thread_safe implies a denied ZMQ_FD request, as seen here.
I do not understand the internals of ZMQ well enough to understand why thread safety denies ZMQ_FD, but my guess would be because _thread_safe originally meant ZMQ_PAIR, and running over the inproc transport would naturally not have an OS-level file descriptor. From what I can tell of the ZMQ_DISH type however, it appears a file descriptor could be expected.
Without the ability to integrate these sockets into an external event loop, efforts to port these draft socket types over to language bindings such as ZMQ.jl will be hampered, as we use the ability to watch file descriptors as a central part of our concurrency model.
Environment
libzmq version: 4.3.2
OS: Linux x86_64
The text was updated successfully, but these errors were encountered:
This issue has been automatically marked as stale because it has not had activity for 365 days. It will be closed if no further activity occurs within 56 days. Thank you for your contributions.
Issue description
In trying to use the
ZMQ_DISH
draft socket type, I am unable to usegetsockopt
withZMQ_FD
to get the underlying file descriptor for usage with an external event system. This appears to be the case because_thread_safe
is set totrue
in the parentsocket_base_t
constructor here. Setting_thread_safe
implies a deniedZMQ_FD
request, as seen here.I do not understand the internals of ZMQ well enough to understand why thread safety denies
ZMQ_FD
, but my guess would be because_thread_safe
originally meantZMQ_PAIR
, and running over theinproc
transport would naturally not have an OS-level file descriptor. From what I can tell of theZMQ_DISH
type however, it appears a file descriptor could be expected.Without the ability to integrate these sockets into an external event loop, efforts to port these draft socket types over to language bindings such as ZMQ.jl will be hampered, as we use the ability to watch file descriptors as a central part of our concurrency model.
Environment
The text was updated successfully, but these errors were encountered: