get_status()

Definition

INT get_status ( <INT processID> )

Get the current status of a ProcessID. With this, you can check if a process is frozen, sleeping, dead, alive or non-existing.

Parameters

  • INT processID - The ProcessID signal was send to.

Returns

INT :

  • false - The specified processID does not exist (return status: 0).
  • 1,2,3 or 4 - The state of the processID.

Return States

Return states 0 - The specified process does not exist. 1 - The specified process is dead. 2 - The specified process is alive. 3 - The specified process is sleeping. 4 - The specified process is frozen.

Example

// import modules
IMPORT "mod_say";
IMPORT "mod_debug";
IMPORT "mod_proc";
IMPORT "mod_grproc";
IMPORT "mod_key";


GLOBAL

  int proc1;
  int proc2;
  int proc3;
  int proc4;
  int proc5;


PROCESS main();

PRIVATE

BEGIN


   // create some processes
   proc1=dummy();
   proc2=dummy();
   proc3=dummy();
   proc4=dummy();

   // change the state
   signal(proc1,s_sleep);
   signal(proc2,s_freeze);
   signal(proc3,s_wakeup);
   signal(proc4,s_kill);

   // print the status of each instance
   say("");
   say("status codes: ALIVE=2, SLEEP=3, FROZEN=4 ,DEAD=1, NON_EXISTING=0");
   say("");
   say("proc1 status: "+get_status(proc1)); // sleeping     (3)
   say("proc2 status: "+get_status(proc2)); // frozen       (4)
   say("proc3 status: "+get_status(proc3)); // alive        (2)
   say("proc4 status: "+get_status(proc4)); // dead         (1)
   say("proc5 status: "+get_status(proc5)); // not existing (0)


   LOOP

      // quit.
      IF (key(_esc))

         exit("",0);
      END
      FRAME;
   END
END


PROCESS dummy();

PRIVATE

BEGIN

   // endless loop
   LOOP
      FRAME;
   END
END

Used in example: exit(), key(), say(), signal().