*/
/********************************************************/
/* */
+/* sorter central task */
+/* */
+/********************************************************/
+static void sorting()
+
+{
+#define OPEP "sorter.c:sorting,"
+#define TSLEEP 20
+
+int phase;
+_Bool proceed;
+
+phase=0;
+proceed=true;
+while (proceed==true) {
+ (void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
+ switch (phase) {
+ case 0 : //Locking access
+ if (prc_locking(appname,true,5)==false) {
+ (void) rou_alert(0,"%s Unable to lock %s exclusif acccess (system?)",
+ OPEP,appname);
+ proceed=false;
+ }
+ break;
+ case 1 : //got signal
+ if ((hangup==true)||((reload==true))) {
+ (void) rou_alert(0,"%s got hangup or reload signal",OPEP);
+ phase=999;
+ }
+ break;
+ case 2 : //got signal
+ (void) scantrans(EXTRANS,true);
+ break;
+ case 3 : //got signal
+ (void) scantrans(EXTRANS,true);
+ break;
+ case 4 : //one passe only?
+ if (foreground==true)
+ phase=999; //Immediate ending
+ break;
+ case 5 : //lets time pass
+ (void) sleep(TSLEEP);
+ phase=0; //Looping
+ break;
+ default : //SAFE Guard
+ (void) prc_locking(appname,false,1);
+ proceed=false;
+ break;
+ }
+ phase++;
+ }
+
+#undef OPEP
+}
+/*
+\f
+*/
+/********************************************************/
+/* */
/* Main routine */
/* Start a channel to a remote ip.port */
/* read file and transmit contecnts to */
{
#define OPEP "sorter.c:main,"
-#define TSLEEP 5
-#define PREST 10
int status;
ARGTYP *params;
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 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
- }
- if (reload==true) {
- (void) rou_alert(0,"%s got reload signal",OPEP);
- phase=999; //exiting loop
- }
break;
- case 5 : //Scanning all ".trans" file
- (void) scantrans(EXTRANS,true);
- break;
- case 6 : //Scanning all ".done" file
- (void) scantrans(EXDONE,false);
- break;
- case 7 : //one shot deal??
- (void) sleep(TSLEEP);
- if (foreground==false)
- phase=PREST; //restarting
+ case 3 : //checking if we need to go background
+ (void) sorting();
break;
default : //end of task
- (void) prc_locking(appname,false,1);
params=par_freeparams(params);
(void) rou_loadconfig(config,false);
(void) sig_trapsignal(false,sig_alrm);