demo/check_eintr.r

suppressMessages(library(pbdZMQ, quietly = TRUE))

context <- zmq.ctx.new()
receiver <- zmq.socket(context, ZMQ.ST()$PULL)
zmq.connect(receiver, "tcp://localhost:5557")

a1 <- zmq.poll(c(receiver), ZMQ.PO()$POLLIN)
print(a1)

a2 <- tryCatch(zmq.poll(c(receiver), ZMQ.PO()$POLLIN),
       interrupt = function(c) return(9),
       error = function(c) return(99))
print(a2)

a3 <- tryCatch(zmq.poll(c(receiver), ZMQ.PO()$POLLIN,
                       MC = ZMQ.MC(check.eintr = TRUE)),
        interrupt = function(c) return(9),
        error = function(c) return(99))
print(a3)

a4 <- zmq.poll(c(receiver), ZMQ.PO()$POLLIN,
               MC = ZMQ.MC(check.eintr = TRUE))
print(a4)
print("This message should not be reached.")
snoweye/pbdZMQ documentation built on Jan. 27, 2024, 11:35 a.m.