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_PROGRAM

En 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