summaryrefslogtreecommitdiffstats
path: root/external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd
diff options
context:
space:
mode:
authorDan Klein <danklei@cisco.com>2015-08-24 13:22:48 +0300
committerDan Klein <danklei@cisco.com>2015-08-24 13:22:48 +0300
commitdab741a80699f86e86c91718872a052cca9bbb25 (patch)
tree1959c4a2cea440170a5113dcb067796cb20ffb64 /external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd
parentd3f26ece7d4383df0b22fe9c3cb3e695381ec737 (diff)
Fixed dependencies of Control Plane to use external_lib sources
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd')
-rw-r--r--external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd26
1 files changed, 26 insertions, 0 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd b/external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd
new file mode 100644
index 00000000..a3afc6bb
--- /dev/null
+++ b/external_libs/python/pyzmq-14.7.0/zmq/backend/cython/checkrc.pxd
@@ -0,0 +1,26 @@
+from libc.errno cimport EINTR, EAGAIN
+from cpython cimport PyErr_CheckSignals
+from libzmq cimport zmq_errno, ZMQ_ETERM
+
+
+cdef inline int _check_rc(int rc) except -1:
+ """internal utility for checking zmq return condition
+
+ and raising the appropriate Exception class
+ """
+ cdef int errno = zmq_errno()
+ PyErr_CheckSignals()
+ if rc < 0:
+ if errno == EINTR:
+ from zmq.error import InterruptedSystemCall
+ raise InterruptedSystemCall(errno)
+ elif errno == EAGAIN:
+ from zmq.error import Again
+ raise Again(errno)
+ elif errno == ZMQ_ETERM:
+ from zmq.error import ContextTerminated
+ raise ContextTerminated(errno)
+ else:
+ from zmq.error import ZMQError
+ raise ZMQError(errno)
+ return 0