Modifica alla TExternal_app::run(), in modo che effettui un HL_LOGOUT

se e' attiva una eventuale connessione in rete. In tal modo si libera
il posto sull'HL-SERVER: prima infatti ad ogni exec() effettuava un
HL_LOGIN supplementare, riempiendo cosi' la tabella sul server di rete.
In realta' il funzionamento corretto dovrebbe prevedere un solo
HL_LOGIN per ogni stazione. A tal proposito sono stati modificati anche
stdtypes.cpp e stdtypes.h, spostando la definizione di CAMPOKEY e REFKEY


git-svn-id: svn://10.65.10.50/trunk@2943 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-05-31 13:05:55 +00:00
parent a42dd7bede
commit 29005974b5
3 changed files with 17 additions and 3 deletions

@ -10,6 +10,7 @@
#define STRICT
#include <windows.h>
#include <toolhelp.h>
#include <hlapi_c.h>
#endif
#include <applicat.h>
@ -17,6 +18,7 @@
#include <prefix.h>
#include <utility.h>
#include <window.h>
#include <extcdecl.h>
// @doc EXTERNAL
@ -85,6 +87,7 @@ int TExternal_app::run(
xvt_fsys_set_dir(&d);
}
main_app().begin_wait();
HL_LOGOUT();
_exitcode = WinExec((char*)(const char*)path, SW_SHOW);
for (int maxtry = 5 ; maxtry > 0 && _exitcode == 16; maxtry--)
@ -216,6 +219,16 @@ int TExternal_app::run(
// update counts
if (_exitcode == 0)
_count++;
// Ignora volutamente il return code da HL_LOGIN(). Se va bene riprende il posto
// altrimenti fa lo stesso. Infatti puo' capitare con una chiave di rete, che
// nel lasso di tempo trascorso dalla HL_LOGOUT() dell'applicazione chiamata,
// a questa HL_LOGIN() [approssimativamente qualche decimo di secondo], qualche altro
// programma si inserisca, occupando magari anche l'ultimo posto disponibile.
// Quindi se si verificasse tale sfigatissima condizione, sicuramente
// non ci saranno piu' posti liberi nell'HL_server: il programma comunque non
// puo' interrompersi a meta'; ecco perche il valore di ritorno di HL_LOGIN viene
// ignorato.
HL_LOGIN(ModAd, DONT_CARE, REFKEY, VERKEY);
return _exitcode;
}

@ -17,9 +17,6 @@
#include <prefix.h>
#include <codeb.h>
#define REFKEY "CAMPOKEY"
#define VERKEY "ìpÙˆ¬cê<"
extern isfdptr *openf;
HIDDEN long _stdlevel = 0;

@ -17,6 +17,10 @@
#define EOL -1
#define NOERR 0
#define REFKEY "CAMPOKEY"
#define VERKEY "ìpÙˆ¬cê<"
// @doc EXTERNAL
// @type UINT8 | Altro nome di assegnazione per gli unsigned char