new nombre_del_proceso( lista de parámetros )
Una llamada a un proceso se hace poniendo new el nombre del proceso (su nombre), seguido de una lista con tantas expresiones separadas por comas (,), como parámetros tenga el proceso, entre paréntesis (). Los paréntesis son obligatorios aun cuando el proceso no tenga parámetros de llamada.
Una llamada a un proceso siempre devolverá un valor.
El valor de retorno puede ignorarse, asignarse a una variable o bien utilizarse dentro de una expresión.
PROCESS_INIT( mi_proceso )(int _x, int _y) BEGIN_INIT x = _x; y = _y; END_INIT BEGIN LOOP FRAME; END MAIN_PROGRAM_CDIV PRIVATE CPROCESS * id2; BEGIN_PROGRAM new mi_proceso(0, 0); id2 = new mi_proceso(320, 200); // ... END_PROGRAM
En este ejemplo el proceso principal realiza dos llamadas al proceso mi_proceso, que recibe dos parámetros en sus variables locales x e y.
Se puede observar cómo el valor devuelto en la primera llamada al proceso es despreciado (no se utiliza para nada), y cómo en la segunda se asigna el código identificador de mi_proceso(320, 200) a la variable privada del proceso principal id2.
Cuando se realiza una llamada a un proceso se detiene momentáneamente la ejecución del proceso actual y se pasa a ejecutar el código del inicializador del proceso llamado, es decir lo que se encuentra entre BEGIN_INIT ... END_INIT, hasta que termine.
Ver: Sintaxis - Parámetros de un proceso