mpiThreadCreate
Declaration
MPI_DECL1 MPI_RESULT MPI_DECL2
mpiThreadCreate(MPIThread *thread,
MPIThreadOptions *options);
Required Header: stdmpi.h
Change History: Added in 04.00.
Description
mpiThreadCreate creates a thread object. mpiThreadCreate is the equivalent of a C++ constructor.
Note: mpiThreadCreate does not start a new thread. To start a new thread, call mpiThreadStart after a thread object is created.
| thread | A pointer to an MPIThread handle. |
|---|---|
| options | Options for the thread. If options is NULL, the system default values is used. |
Sample Code
MPI_RESULT MPI_DECL2
helloThreadMain(void* threadData)
{
/* print event type to screen. */
printf("Hello from another thread.\n"
" threadData = 0x%08x", threadData);
return MPIMessageOK;
}
/* Wait for a thread to end */
MPI_RESULT threadJoin(MPIThread thread)
{
MPIThreadStatus status;
MPI_RESULT returnValue = MPIMessageOK;
while (returnValue == MPIMessageOK)
{
returnValue = mpiThreadStatus(thread, &status);
if ((returnValue == MPIMessageOK) &&
(status.active == FALSE))
{
break;
}
mpiPlatformSleep(10);
}
return returnValue;
}
void sayHello()
{
MPIThread thread;
MPI_RESULT returnValue;
returnValue = mpiThreadCreate(&thread, NULL);
msgCHECK(returnValue);
returnValue = mpiThreadStart(thread, helloThreadMain, NULL);
msgCHECK(returnValue);
returnValue = threadJoin(thread);
msgCHECK(returnValue);
returnValue = mpiThreadDelete(thread);
msgCHECK(returnValue);
}
