diff options
Diffstat (limited to 'doc/xs_term.txt')
-rw-r--r-- | doc/xs_term.txt | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/doc/xs_term.txt b/doc/xs_term.txt new file mode 100644 index 0000000..a9b75bb --- /dev/null +++ b/doc/xs_term.txt @@ -0,0 +1,65 @@ +xs_term(3) +========== + + +NAME +---- +xs_term - terminate the context + + +SYNOPSIS +-------- +*int xs_term (void '*context');* + + +DESCRIPTION +----------- +The _xs_term()_ function shall terminate the Crossroads context 'context'. + +Context termination is performed in the following steps: + +1. Any blocking operations currently in progress on sockets open within + 'context' shall return immediately with an error code of ETERM. With the + exception of _xs_close()_, any further operations on sockets open within + 'context' shall fail with an error code of ETERM. + +2. After interrupting all blocking calls, _xs_term()_ shall _block_ until the + following conditions are satisfied: ++ + * All sockets open within 'context' have been closed with _xs_close()_. + + * For each socket within 'context', all messages sent by the application + with _xs_send()_ have either been physically transferred to a network + peer, or the socket's linger period set with the _XS_LINGER_ socket + option has expired. + +For further details regarding socket linger behaviour refer to the _XS_LINGER_ +option in linkxs:xs_setsockopt[3]. + + +RETURN VALUE +------------ +The _xs_term()_ function shall return zero if successful. Otherwise it shall +return `-1` and set 'errno' to one of the values defined below. + + +ERRORS +------ +*EFAULT*:: +The provided 'context' was invalid. +*EINTR*:: +Termination was interrupted by a signal. It can be restarted if needed. + + +SEE ALSO +-------- +linkxs:xs[7] +linkxs:xs_init[3] +linkxs:xs_close[3] +linkxs:xs_setsockopt[3] + + +AUTHORS +------- +The Crossroads documentation was written by Martin Sustrik <sustrik@250bpm.com> +and Martin Lucina <martin@lucina.net>. |