icetCreateContext(3) IceT Reference icetCreateContext(3)
NAME
icetCreateContext -- creates a new context.
Synopsis
#include <IceT.h>
IceTContext icetCreateContext( IceTCommunicator comm );
Description
The icetCreateContext function creates a new .igcontext!IceT IceT context, makes it current, and returns a handle to the new context. The
handle returned is of type IceTContext. This is an opaque type that should not be handled directly, but rather simply passed to other IceT
functions.
Like OpenGL ,the IceT engine behaves like a large state machine. The parameters for engine operation is held in the current state. The
entire state is encapsulated in a context. Each new context contains its own state.
It is therefore possible to change the entire current state of IceT by simply switching contexts. Switching contexts is much faster, and
often more convenient, than trying to change many state parameters.
Errors
None.
Warnings
None.
Bugs
It may be tempting to use contexts to run different IceT operations on separate program threads. Although certainly possible, great care
must be taken. First of all, all threads will share the same context. Second of all, IceT is not thread safe. Therefore, a multi-threaded
program would have to run all IceT commands in `critical sections' to ensure that the correct context is being used, and the methods exe-
cute safely in general.
Notes
icetCreateContext duplicates the communicator comm. Thus, to avoid deadlocks on certain implementations (such as MPI), the user level pro-
gram should call icetCreateContext on all processes with the same comm object at about the same time.
Copyright
Copyright (C)2003 Sandia Corporation
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.
This source code is released under the New BSD License.
See Also
icetDestroyContext(3), icetGetContext(3), icetSetContext(3), icetCopyState(3), icetGet(3)
IceT Reference August 9, 2010 icetCreateContext(3)