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 execute safely in general.
Notes¶
icetCreateContext duplicates the communicator
comm. Thus, to avoid
deadlocks on certain implementations (such as MPI), the user level program
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)