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.")

Try the pbdZMQ package in your browser

Any scripts or data that you put into this service are public.

pbdZMQ documentation built on Sept. 8, 2023, 6:06 p.m.