Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
REG_TASKER(3PVM)		 PVM Version 3.4		REG_TASKER(3PVM)

NAME
     pvm_reg_tasker - Register task as PVM task starter.

SYNOPSIS
     C	  #include <pvmsdpro.h>

	  int cc = pvm_reg_tasker()

     Fortran   Not Available

DESCRIPTION
     Registers	the calling task as a PVM task starter.  When a tasker is regis-
     tered with a pvmd, and the pvmd receives  a  DM_EXEC  message,  instead  of
     fork()ing and exec()ing the task itself, it passes a message to the tasker,
     which does the dirty work and sends a message back to the pvmd.

     Note:   If this doesn't make sense, don't worry about it.	This function is
     for folks who are writing stuff like debugger servers and	so  on.   For  a
     more  complete explanation of what's going on here, you should refer to the
     PVM source code and/or user guide section on implementation; this is only a
     man page.	That said...

     When the pvmd receives a DM_EXEC message (request to exec	new  tasks),  it
     searches  epath  (the PVM executable search path) for the file name.  If it
     finds the file, it then either  attempts  to  start  the  processes  (using
     fork()  and  exec())  or,	if a tasker has registered, sends it a SM_STTASK
     message.

     The format of the SM_STTASK message is:
	 int tid	       // of task
	 int flags	       // as passed to spawn()
	 string path	       // absolute path of the executable
	 int argc	       // number of args to process
	 string argv[argc]     // args
	 int nenv	       // number of envars to pass to task
	 string env[nenv]      // environment strings

     The tasker must attempt to start the process when it gets one of these mes-
     sages.  The tasker doesn't reply to the pvmd if the  task	is  successfully
     started;  the  task will reconnect to the pvmd on its own, using the cookie
     in envar PVMEPID to identify itself to the pvmd.

     The tasker must send a SM_TASKX message to the pvmd when any task	that  it
     owns (has started) exits, or if it can't start a particular task.	The for-
     mat of the SM_TASKX message is:

	 int tid	       // of task
	 int status	       // the Unix exit status (from wait())
	 int u_sec	       // user time used by the task, seconds
	 int u_usec	       // microseconds
	 int s_sec	       // system time used by the task, seconds
	 int s_usec	       // microseconds

     The  tasker  task	must use pvm_setopt(PvmResvTids, 1) to allow sending re-
     served messages.  Messages should be packed using	encoding  PvmDataDefault
     to ensure they can be unpacked anywhere in the system.

     pvm_reg_tasker() returns PvmOk when successful.

SEE ALSO
     pvm_spawn(3PVM), pvm_tasks(3PVM),

				 16 March, 1994 		REG_TASKER(3PVM)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pvm_reg_tasker&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help