Bloque destructor BEGIN_DESTROY ... END_DESTROY
BEGIN_DESTROY
// Instrucciones END_DESTROY
Estas sentencias nos permiten acceder destructor del proceso mediante la definición de este bloque, así podremos ejecutar las sentencias que necesite el proceso a la hora de ser finalizado.
Los bloques BEGIN_DESTROY ... END_DESTROY se ejecutarán justo antes de ser eliminado el proceso.
Para poder utilizar BEGIN_DESTROY ... END_DESTROY dentro de un proceso o programa principal solamente hay que incluir estas sentencias detrás de END_INIT si es un proceso PROCESS_INIT o detrás de PROCESS si no lo es, y si es un proceso principal detrás de MAIN_PROGRAM_CDIV.
PROCESS_INIT( test )()
BEGIN_INIT
write(0,0,10,0, "Constructor");
END_INIT
BEGIN_DESTROY
write(0,0,18,0, "Destructor");
END_DESTROY
BEGIN
LOOP
FRAME;
END
MAIN_PROGRAM_CDIV
BEGIN_PROGRAM
set_gfx(GFX_AUTODETECT_WINDOWED);
set_mode(m320x200);
new test();
write(0,0,0,0, "Pulse espacio para eliminar el proceso");
// Bucle de espera
LOOP{
// Eliminamos el proceso
if( key(_space) )
signal("test", s_kill);
FRAME;
}
END_PROGRAMEn este ejemplo vemos como funciona el constructor y el destructor de un proceso. Se crea un proceso nos muestra el mensaje: "Constructor" y si se pulsa la barra espaciadora se destruye mostrando el mensaje: "Destructor".
Ver: Sintaxis