blob: be7d06fb109ad0439b9a7d469dd9ac50cc2c30af (
plain)
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
80
81
82
83
84
85
86
|
xs_setctxopt(3)
===============
NAME
----
xs_setctxopt - set Crossroads context options
SYNOPSIS
--------
*int xs_setctxopt (void '*context', int 'option_name', const void '*option_value', size_t 'option_len');*
Caution: All options take effect only if set prior to creating the first socket.
DESCRIPTION
-----------
The _xs_setctxopt()_ function shall set the option specified by the
'option_name' argument to the value pointed to by the 'option_value' argument
for the Crossroads context pointed to by the 'context' argument.
The 'option_len' argument is the size of the option value in bytes.
The following options can be set with the _xs_setctxopt()_ function:
XS_MAX_SOCKETS: Set maximum number of sockets
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'XS_MAX_SOCKETS' option shall set specify the maximum nuber of sockets
that can be open at the same time.
[horizontal]
Option value type:: int
Option value unit:: sockets
Default value:: 512
XS_REENTRANT: Specify whether sockets should be thread-safe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If 'XS_REENTRANT' option is set to 1 it is safe to access single Crossroads
socket from multiple threads in parallel. If it is set to 0 it can be accessed
by at most one thread at any single point of time.
Note: By default Crossroads sockets are non-reentrant. If possible, try to use
the socket from the thread it was created in. If communication between threads
is needed use inproc transport. Not following this advice can introduce
scalability problems.
[horizontal]
Option value type:: int
Option value unit:: boolean
Default value:: 0
RETURN VALUE
------------
The _xs_setctxopt()_ function shall return zero if successful. Otherwise it
shall return `-1` and set 'errno' to one of the values defined below.
ERRORS
------
*EINVAL*::
The requested option _option_name_ is unknown, or the requested _option_len_ or
_option_value_ is invalid.
*EFAULT*::
The provided 'context' was invalid.
EXAMPLE
-------
.Setting maximal number of sockets to three.
----
int val = 3;
rc = xs_setctxopt (context, XS_CTX_MAX_SOCKETS, &val, sizeof (val));
assert (rc == 0);
----
SEE ALSO
--------
linkxs:xs_getsockopt[3]
linkxs:xs_setsockopt[3]
linkxs:xs_init[3]
linkxs:xs[7]
AUTHORS
-------
This manual page was written by Martin Sustrik <sustrik@250bpm.com>.
|