let_me_alone()
Descripción:
Envía una señal s_kill a todos los procesos, excepto el que ejecutó esta función, lo que eliminará a todos los procesos menos el actual.
Esta función se utiliza, generalmente, desde el proceso principal, cuando ha finalizado una partida, para eliminar todos los procesos (disparos, enemigos, etc.) que quedarán activos, y recuperar el control del programa.
Una llamada a let_me_alone() se podría sustituir siempre por una serie de llamadas a la función signal() con la señal s_kill, pero para ello se deberían conocer los tipos de los procesos que se quieren eliminar, o bien, sus códigos identificadores.
PROGRAM ejemplo_let_me_alone; BEGIN load_fpg("help\help.fpg"); proceso_nulo(160, 100, 100); write (0, 160, 0, 1, "Pulse [ESPACIO] para eliminar el proceso"); WHILE (NOT key (_space)) FRAME; END let_me_alone(); // Se elimina el resto de los procesos LOOP FRAME; END END PROCESS proceso_nulo(x, y, graph) BEGIN LOOP FRAME; END END
En el ejemplo, después de crear un proceso de tipo proceso_nulo, se espera a la pulsación de la barra espaciadora para utilizar la función let_me_alone() la cual elimina todos los procesos que hubiera (menos el principal, que es el que llamó a la función); en este caso se eliminará el proceso de tipo proceso_nulo.
Para poder comprobar los procesos que hay activos en un programa en un determinado momento se debe acceder al trazador (o debugger) pulsando la tecla [F12].
La función exit() sirve para terminar un programa de forma inmediata, retornando al sistema.