GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PVM_GETCONTEXT (3)

NAME

pvm_newcontext, pvm_setcontext, pvm_freecontext, pvm_getcontext - Request new context, change context, free existing context, and get current context, respectively.

CONTENTS

Synopsis
Parameters
Description
Examples
Errors
See Also

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 and the means to manipulate this context.

Contexts provide the ability for communicating tasks to automatically differentiate messages by the context in which they were sent. Thus a message sent in context A by the sender must be received in 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 inadvertent receipt 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 context programs themselves do not generate errors.

SEE ALSO

Search for    or go to Top of page |  Section 3 |  Main Index


CONTEXT (3PVM) 8 April, 1997

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.