#include "unisig.h"
#include "geseml.h"
-/*
-\f
-*/
-/********************************************************/
-/* */
-/* Procedure to lock application if NOT in */
-/* foreground mode. */
-/* */
-/********************************************************/
-static void dolockunlock(_Bool locking)
-
-{
-if (foreground==false) {
- if (prc_locking(appname,true,5)==false) {
- switch (locking) {
- case true :
- (void) rou_alert(0,"Unable to LOCK %s usage (system?)",appname);
- break;
- case false :
- (void) rou_alert(0,"Unable to UNLOCK %s usage (system?)",appname);
- break;
- }
- }
- }
-}
/*
\f
*/
{
#define OPEP "sorter.c:main,"
#define TSLEEP 5
+#define PREST 10
int status;
ARGTYP *params;
(void) sig_modeunisig(true);
(void) sig_trapsignal(true,sig_alrm);
(void) rou_loadconfig(config,true);
- (void) dolockunlock(false);
break;
case 2 : //checking if we need to go background
if (foreground==false) {
if (prc_divedivedive()!=0)
phase=999; //direct exit
}
+ case 3 : //checking if we need to go background
+ if (prc_locking(appname,true,5)==false)
+ phase=999; //Trouble trouble
break;
- case 3 : //check about signal process
- (void) sleep(TSLEEP);
+ case PREST+1: //restart phase
+ //NO BREAK, NO BREAK
+ case 4 : //check about signal process
+ phase=4; //reset phase
if (hangup==true) {
(void) rou_alert(0,"%s got hangup signal",OPEP);
phase=999; //exiting loop
phase=999; //exiting loop
}
break;
- case 4 : //Scanning all ".trans" file
+ case 5 : //Scanning all ".trans" file
(void) scantrans(EXTRANS,true);
break;
- case 5 : //Scanning all ".done" file
+ case 6 : //Scanning all ".done" file
(void) scantrans(EXDONE,false);
break;
- case 6 : //one shot deal??
+ case 7 : //one shot deal??
+ (void) sleep(TSLEEP);
if (foreground==false)
- phase=2; //restarting
+ phase=PREST; //restarting
break;
default : //end of task
- (void) dolockunlock(false);
+ (void) prc_locking(appname,false,1);
params=par_freeparams(params);
(void) rou_loadconfig(config,false);
(void) sig_trapsignal(false,sig_alrm);