GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
NN_POLL(3) nanomsg 1.1.5 NN_POLL(3)

nn_poll - poll a set of SP sockets for readability and/or writability

#include <nanomsg/nn.h>

int nn_poll (struct nn_pollfd *fds, int nfds, int timeout);

The function checks a set of SP socket and reports whether it’s possible to send a message to the socket and/or receive a message from each socket.

fds argument is an array of nn_pollfd structures with nfds argument specifying the size of the array:

struct nn_pollfd {
    int fd;
    short events;
    short revents;
};

Each entry in the array represents an SP socket to check. events field specifies which events to check for. The value is a bitwise combination of the following values:

NN_POLLIN

Check whether at least one message can be received from the fd socket without blocking.

NN_POLLOUT

Check whether at least one message can be sent to the fd socket without blocking.

After the function returns, revents field contains bitwise combination of NN_POLLIN and NN_POLLOUT according to whether the socket is readable or writable.

timeout parameter specifies how long (in milliseconds) should the function block if there are no events to report.

Upon successful completion, the number of nn_pollfds structures with events signaled is returned. In case of timeout, return value is 0. In case of error, -1 is returned and errno is set the one of the values below.

EBADF
Some of the provided sockets are invalid.

EINTR

The operation was interrupted by delivery of a signal before the message was sent.

ETERM

The library is terminating.

nn_poll is a convenience function. You can achieve same behaviour by using NN_RCVFD and NN_SNDFD socket options. However, using the socket options allows for usage that’s not possible with nn_poll, such as simultaneous polling for both SP and OS-level sockets, integration of SP sockets with external event loops etc.

struct nn_pollfd pfd [2];
pfd [0].fd = s1;
pfd [0].events = NN_POLLIN | NN_POLLOUT;
pfd [1].fd = s2;
pfd [1].events = NN_POLLIN;
rc = nn_poll (pfd, 2, 2000);
if (rc == 0) {
    printf ("Timeout!");
    exit (1);
}
if (rc == -1) {
    printf ("Error!");
    exit (1);
}
if (pfd [0].revents & NN_POLLIN) {
    printf ("Message can be received from s1!");
    exit (1);
}

nn_socket(3) nn_getsockopt(3) nanomsg(7)

Martin Sustrik <sustrik@250bpm.com>
2018-10-15  

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.