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:
parent
a42dd7bede
commit
29005974b5
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user