diff options
author | imarom <imarom@cisco.com> | 2015-08-18 10:26:51 +0300 |
---|---|---|
committer | imarom <imarom@cisco.com> | 2015-08-18 10:26:51 +0300 |
commit | cbc645cba025f2098031350fc1323e6ffff33633 (patch) | |
tree | db867b2eb09d5b38d47e28a9876bc21f51f8cc57 /src/console/zmq/backend/cython/checkrc.pxd | |
parent | 396b54ea57308890c29c1d9746f0cce32d990cf8 (diff) |
new files for Python console
Diffstat (limited to 'src/console/zmq/backend/cython/checkrc.pxd')
-rw-r--r-- | src/console/zmq/backend/cython/checkrc.pxd | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/console/zmq/backend/cython/checkrc.pxd b/src/console/zmq/backend/cython/checkrc.pxd new file mode 100644 index 00000000..3bf69fc3 --- /dev/null +++ b/src/console/zmq/backend/cython/checkrc.pxd @@ -0,0 +1,23 @@ +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 == 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 -1 + return 0 |