aboutsummaryrefslogtreecommitdiffstats
path: root/bus_poll.3
blob: f91623791787d637a3b06a91de8d8b3440e89358 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
.TH BUS_POLL 3 BUS
.SH NAME
bus_poll_start, bus_poll_stop, bus_poll, bus_poll_timed - Wait a message to be broadcasted
.SH SYNOPSIS
.LP
.nf
#include <bus.h>
.P
int bus_poll_start(bus_t *\fIbus\fP);
int bus_poll_stop(const bus_t *\fIbus\fP);
const char *bus_poll(bus_t *\fIbus\fP, int \fIflags\fP);
const char *bus_poll_timed(bus_t *\fIbus\fP, const struct timespec *\fItimeout\fP, clockid_t \fIclockid\fP);
.fi
.SH DESCRIPTION
The
.BR bus_poll ()
function waits for a message to be broadcasted on the \fIbus\fP, and return
the message it receives.  The function fails if (\fIflags\fP &BUS_NOWAIT)
and there is not already a message waiting on the bus.  Received messages
shall be copied and parsed, and acted upon, in a separate thread, and
.BR bus_poll ()
or
.BR bus_poll_stop ()
called again as soon as possible.
.PP
The
.BR bus_poll_start ()
funcion must be called before
.BR bus_poll ()
is called for the first time.  When the process is done listening on the
bus it must call the
.BR bus_poll_stop ()
function.
.PP
The
.BR bus_poll_timed ()
function behaves like
.BR bus_poll (),
except if it is not able to read a message within the specified time,
it will fail and set \fIerrno\fP to \fBEAGAIN\fP.  The time is specified
as an absolute time using the parameter \fItimeout\fP.  The behaviour is
unspecified if \fItimeout\fP is \fINULL\fP. \fItimeout\fP is measured
with the clock whose ID is specified by the \fIclockid\fP parameter.  This
clock must be a predicitable clock.
.SH RETURN VALUES
Upon successful completion, the functions
.BR bus_poll_start ()
and
.BR bus_poll_stop ()
returns 0.  Otherwise the functions returns -1 and sets \fIerrno\fP to
indicate the error.
.PP
Upon successful completion, the functions
.BR bus_poll ()
and
.BR bus_poll_timed ()
returns the received message.  Otherwise the function returns \fINULL\fP
and sets \fIerrno\fP to indicate the error.
.SH ERRORS
The
.BR bus_poll (3),
.BR bus_poll_start (3)
and
.BR bus_poll_stop (3)
functions may fail and set \fIerrno\fP to any of the errors specified for
.BR semop (3).
The
.BR bus_poll_timed (3)
function may also set \fIerrno\fP to any of the errors specified for
.BR clock_gettime (3).
.SH SEE ALSO
.BR bus-create (1),
.BR bus (5),
.BR libbus (7),
.BR bus_open (3),
.BR bus_write (3),
.BR bus_read (3),
.BR semop (3),
.BR clock_gettime (3)