'\" t .\" Title: xs_term .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 .\" Date: 06/13/2012 .\" Manual: Crossroads I/O Manual .\" Source: Crossroads I/O 1.2.0 .\" Language: English .\" .TH "XS_TERM" "3" "06/13/2012" "Crossroads I/O 1\&.2\&.0" "Crossroads I/O Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" xs_term \- terminate the context .SH "SYNOPSIS" .sp \fBint xs_term (void \fR\fB\fI*context\fR\fR\fB);\fR .SH "DESCRIPTION" .sp The \fIxs_term()\fR function shall terminate the Crossroads context \fIcontext\fR\&. .sp Context termination is performed in the following steps: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Any blocking operations currently in progress on sockets open within \fIcontext\fR shall return immediately with an error code of ETERM\&. With the exception of \fIxs_close()\fR, any further operations on sockets open within \fIcontext\fR shall fail with an error code of ETERM\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} After interrupting all blocking calls, \fIxs_term()\fR shall \fIblock\fR until the following conditions are satisfied: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} All sockets open within \fIcontext\fR have been closed with \fIxs_close()\fR\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} For each socket within \fIcontext\fR, all messages sent by the application with \fIxs_send()\fR have either been physically transferred to a network peer, or the socket\(cqs linger period set with the \fIXS_LINGER\fR socket option has expired\&. .RE .RE .sp For further details regarding socket linger behaviour refer to the \fIXS_LINGER\fR option in \fBxs_setsockopt\fR(3)\&. .SH "RETURN VALUE" .sp The \fIxs_term()\fR function shall return zero if successful\&. Otherwise it shall return \-1 and set \fIerrno\fR to one of the values defined below\&. .SH "ERRORS" .PP \fBEFAULT\fR .RS 4 The provided \fIcontext\fR was invalid\&. .RE .PP \fBEINTR\fR .RS 4 Termination was interrupted by a signal\&. It can be restarted if needed\&. .RE .SH "SEE ALSO" .sp \fBxs\fR(7) \fBxs_init\fR(3) \fBxs_close\fR(3) \fBxs_setsockopt\fR(3) .SH "AUTHORS" .sp The Crossroads documentation was written by Martin Sustrik <\m[blue]\fBsustrik@250bpm\&.com\fR\m[]\&\s-2\u[1]\d\s+2> and Martin Lucina <\m[blue]\fBmartin@lucina\&.net\fR\m[]\&\s-2\u[2]\d\s+2>\&. .SH "NOTES" .IP " 1." 4 sustrik@250bpm.com .RS 4 \%mailto:sustrik@250bpm.com .RE .IP " 2." 4 martin@lucina.net .RS 4 \%mailto:martin@lucina.net .RE