MAN page from Old RedHat 5.X pvm-3.4beta7-2.i386.rpm
CONTEXT
Section: PVM Version 3.4 (3PVM)
Updated: 8 April, 1997
Index NAME
pvm_newcontext - Request new context.
pvm_setcontext - Change context.
pvm_freecontext - Free existing context.
pvm_getcontext - Get current context.
SYNOPSIS
C int ctx = pvm_newcontext( void )
int old_ctx = pvm_setcontext( int new_ctx )
int info = pvm_freecontext( ctx )
int ctx = pvm_getcontext( void )
Fortran
call pvmfnewcontext( ctx )
call pvmfsetcontext( new_ctx, old_ctx )
call pvmffreecontext( ctx, info )
call pvmfgetcontext( ctx )
PARAMETERS
- ctx
Context value.- new_ctx
New context value.- old_ctx
Prior context value.- info
Result code.
DESCRIPTION
The context functions provide a system-wide unique context andthe means to manipulate this context.
Contexts provide the ability for communicating tasks to automaticallydifferentiate messages by the context in which they were sent.Thus a message sent in context A by the sender must be receivedin context A by the recipient. A sender may send in any context.However, a recipient will not accept a message sent in a context that differs from its own.
One such use of contexts is with library routines. Using contexts,library routine inter-communication may be logically seperated from the user's application inter-communication. This will prevent the inadvertentreceipt of one another's messages.
Spawned tasks inherit the spawn-time context of their parent.Existing PVM applications work unchanged using the default context.
pvm_newcontext returns a newly allocated context.However, this new context is not yet active.
pvm_setcontext changes the current context from old_ctx to new_ctx.
pvm_freecontext frees ctx so that it may be reused.Contexts are a system resource that will be exhausted if not recycled.
pvm_getcontext returns the current context of the requesting task.
EXAMPLES
/* parent task with context */ int cc, context0, context1; char buf[25]; context0 = pvm_getcontext(); /* get my current context */ context1 = pvm_newcontext(); /* get a new context */ pvm_setcontext(context1); /* set my context to new context */ printf("My context is: %d", context1); pvm_spawn("child", (char**)0, PvmTaskDefault, "", 1, &tid); cc = pvm_recv(-1, -1); /* receive message from child - in context1 */ pvm_upkstr(buf); printf("%s", buf); pvm_setcontext(context0); /* reset my context to my original context0 *//* child task with context - child inherits parent's context as default */ int context; int ptid; char buf[25]; ptid = pvm_parent(); context = pvm_getcontext(); /* get my current context */ sprintf(buf, "Greetings from child who's context is: %d.", context); pvm_initsend(PvmDataDefault); pvm_pkstr(buf); pvm_send(ptid, 1);
ERRORS
Only system resource errors will be returned as the contextprograms themselves do not generate errors.
SEE ALSO
Index
- NAME
- SYNOPSIS
- PARAMETERS
- DESCRIPTION
- EXAMPLES
- ERRORS
- SEE ALSO
This document was created byman2html,using the manual pages.