FwFreeObj [AS]

FwFreeObj [AS]
Author: Eurai
Inclusão: 08/10/2021
Alteração: 08/10/2021

Descrição

Elimina da memória a instância do objeto informado como parâmetro.

 

Sintaxe

FwFreeObj( <oObj> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
oObj Objeto Indica o objeto ADVPL a ser eliminado da memória   X  

 

Retorno

Retorno Tipo Descrição

 

Exemplo

#INCLUDE "TOTVS.CH"

User Function FwFreeObj()
Local oSay01	:= TSay():New( 010,005,{|| "UA:" },GetWndDefault(),,,.F.,.F.,.F.,.T.,,,550,008)

FwFreeObj( oSay01 )

Return( Nil )

 

Resultado
fwfreeobj   

 

 

Informações adicionais

A função FwFreeObj() elimina a instância referenciada pelo objeto informado como parâmetro. Esta função é utilizada para eliminar explicitamente a instância do objeto da memória do server, independentemente de haver outras referências aquela instância do objeto. Ao eliminarmos uma instância de objeto utilizando a função FwFreeObj(), as variáveis que faziam referência à instância eliminada passam a ter conteúdo nulo ( NIL ). Caso alguma referência ao objeto elimiado seja utilizada, a aplicação AdvPL será finalizada com a ocorrência de erro fatal "Variable is not an object"

A limpeza de uma instância de uma classe/objeto, na linguagem AdvPL, é realizada normalmente pelo run-time do Kernel do Application Server, quando a variável sai do escopo de processamento e/ou quando a variável é anulada ( oVariavel := NIL ). Porém, caso a instância deste objeto esteja sendo referenciada por mais de uma variável, no momento que uma das variáveis é anulada, é eliminada apenas uma referência, mas a instância do objeto continua ativa, pois ela ainda está sendo referenciada por outra variável. É recomendável o uso da função FwFreeObj() para objetos de componentes não-visuais, como classes AdvPL e/ou WebServices, uma vez que a determinada instância não será mais utilizada e/ou necessária no processamento, forçando a limpeza da instância do objeto da memória e anulando todas as referências ativas do mesmo

A utilização da função FwFreeObj() requer cuidado especial quando utilizada para eliminar da memória um objeto de uma classe visual (Objeto de Interface). Se a função for chamada para eliminar um objeto de interface ainda ativo, o Application Server pode apresentar comportamentos inesperados, como ocorrências de "Exception Access Violation", "Segment Fault" , congelamento do serviço e/ou queda do servidor de aplicação

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

 

 

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários