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
|
#define STRICT
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <toolhelp.h>
|
#include <toolhelp.h>
|
||||||
|
#include <hlapi_c.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
@ -17,6 +18,7 @@
|
|||||||
#include <prefix.h>
|
#include <prefix.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <window.h>
|
#include <window.h>
|
||||||
|
#include <extcdecl.h>
|
||||||
|
|
||||||
// @doc EXTERNAL
|
// @doc EXTERNAL
|
||||||
|
|
||||||
@ -85,6 +87,7 @@ int TExternal_app::run(
|
|||||||
xvt_fsys_set_dir(&d);
|
xvt_fsys_set_dir(&d);
|
||||||
}
|
}
|
||||||
main_app().begin_wait();
|
main_app().begin_wait();
|
||||||
|
HL_LOGOUT();
|
||||||
_exitcode = WinExec((char*)(const char*)path, SW_SHOW);
|
_exitcode = WinExec((char*)(const char*)path, SW_SHOW);
|
||||||
|
|
||||||
for (int maxtry = 5 ; maxtry > 0 && _exitcode == 16; maxtry--)
|
for (int maxtry = 5 ; maxtry > 0 && _exitcode == 16; maxtry--)
|
||||||
@ -216,6 +219,16 @@ int TExternal_app::run(
|
|||||||
// update counts
|
// update counts
|
||||||
if (_exitcode == 0)
|
if (_exitcode == 0)
|
||||||
_count++;
|
_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;
|
return _exitcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,9 +17,6 @@
|
|||||||
#include <prefix.h>
|
#include <prefix.h>
|
||||||
#include <codeb.h>
|
#include <codeb.h>
|
||||||
|
|
||||||
#define REFKEY "CAMPOKEY"
|
|
||||||
#define VERKEY "ìpÙˆ¬cê<"
|
|
||||||
|
|
||||||
extern isfdptr *openf;
|
extern isfdptr *openf;
|
||||||
HIDDEN long _stdlevel = 0;
|
HIDDEN long _stdlevel = 0;
|
||||||
|
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
#define EOL -1
|
#define EOL -1
|
||||||
#define NOERR 0
|
#define NOERR 0
|
||||||
|
|
||||||
|
#define REFKEY "CAMPOKEY"
|
||||||
|
#define VERKEY "ìpÙˆ¬cê<"
|
||||||
|
|
||||||
|
|
||||||
// @doc EXTERNAL
|
// @doc EXTERNAL
|
||||||
|
|
||||||
// @type UINT8 | Altro nome di assegnazione per gli unsigned char
|
// @type UINT8 | Altro nome di assegnazione per gli unsigned char
|
||||||
|
Loading…
x
Reference in New Issue
Block a user