From: Jean-Marc Pigeon (Delson) Date: Sun, 22 Jun 2025 12:31:37 +0000 (-0400) Subject: sorter is now locking when running in background X-Git-Tag: tag-0.9~33 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=ee780c9a82317809b366fc49170184369c4aa1d2;p=jmp%2Fmailleur sorter is now locking when running in background --- diff --git a/app/sorter.c b/app/sorter.c index 76784a1..8c6ecfd 100644 --- a/app/sorter.c +++ b/app/sorter.c @@ -20,6 +20,34 @@ #include "unisig.h" #include "geseml.h" +/* + +*/ +/********************************************************/ +/* */ +/* 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; + } + } + } +} +/* + +*/ /********************************************************/ /* */ /* procedure to scan all files */ @@ -126,12 +154,15 @@ while (proceed==true) { (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 } break; - case 2 : //check about signal process + case 3 : //check about signal process (void) sleep(TSLEEP); if (hangup==true) { (void) rou_alert(0,"%s got hangup signal",OPEP); @@ -142,17 +173,18 @@ while (proceed==true) { phase=999; //exiting loop } break; - case 3 : //Scanning all ".trans" file + case 4 : //Scanning all ".trans" file (void) scantrans(EXTRANS,true); break; - case 4 : //Scanning all ".done" file + case 5 : //Scanning all ".done" file (void) scantrans(EXDONE,false); break; - case 5 : //one shot deal?? + case 6 : //one shot deal?? if (foreground==false) - phase=1; //restarting + phase=2; //restarting break; default : //end of task + (void) dolockunlock(false); params=par_freeparams(params); (void) rou_loadconfig(config,false); (void) sig_trapsignal(false,sig_alrm);