From: Jean-Marc Pigeon (Delson) Date: Sun, 22 Jun 2025 13:35:41 +0000 (-0400) Subject: Imroving way sorter is started in background X-Git-Tag: tag-0.9~31 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=45d0b984d7e3a7770894630022222ae84751ef1f;p=jmp%2Fmailleur Imroving way sorter is started in background --- diff --git a/Makefile.dbg b/Makefile.dbg index a7a3612..7a01fc0 100644 --- a/Makefile.dbg +++ b/Makefile.dbg @@ -80,9 +80,9 @@ onesortr: debug #-------------------------------------------------------------------- #procedure to start all needed components to have #a full complete test -actions : clean debug newtest dosorter dorcvr +actions : clean debug newtest dosortr dorcvr -dosorter: +dosortr : @ echo "Starting Sorter" @ \ bin/sorter \ diff --git a/app/sorter.c b/app/sorter.c index 4938bc8..850b819 100644 --- a/app/sorter.c +++ b/app/sorter.c @@ -93,6 +93,65 @@ while (proceed==true) { */ /********************************************************/ /* */ +/* 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 +} +/* + +*/ +/********************************************************/ +/* */ /* Main routine */ /* Start a channel to a remote ip.port */ /* read file and transmit contecnts to */ @@ -103,8 +162,6 @@ int main(int argc,char *argv[]) { #define OPEP "sorter.c:main," -#define TSLEEP 5 -#define PREST 10 int status; ARGTYP *params; @@ -136,36 +193,11 @@ while (proceed==true) { 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); diff --git a/lib/uniprc.c b/lib/uniprc.c index af16a01..e7a30d3 100644 --- a/lib/uniprc.c +++ b/lib/uniprc.c @@ -208,6 +208,7 @@ fullname=(char *)0; phase=0; proceed=true; while (proceed==true) { + //(void) rou_alert(0,"%s pahse='%d'",OPEP,phase); switch (phase) { case 0 : //setting lock filename if (lockname==(const char *)0) {