The xs_init() function initialises a Crossroads context.
Thread safety. A
is thread safe and may be shared among as many application threads as necessary, without any additional locking required on the part of the caller.
The individual sockets within a context are not thread safe applications may not use a single socket concurrently from multiple threads.
A socket may be migrated from one thread to another, by issuing a full memory barrier between individual calls on the socket. For example, this means applications can create a socket in one thread with xs_socket() and then pass it to a newly created thread as part of thread initialization via a structure passed as an argument to pthread_create().
Context options. Context options may be set prior to creating the first socket within a
context, using the
for details on the available context options.
Multiple contexts. Multiple
may coexist within a single application. Thus, an application can use Crossroads directly and at the same time make use of any number of additional libraries or components which themselves make use of Crossroads.