]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Bug 118: fix batching to properly release modems
authorLee Howard <faxguy@howardsilvan.com>
Tue, 26 Jul 2005 21:07:19 +0000 (21:07 +0000)
committerLee Howard <faxguy@howardsilvan.com>
Tue, 26 Jul 2005 21:07:19 +0000 (21:07 +0000)
CHANGES
faxd/faxQueueApp.c++

diff --git a/CHANGES b/CHANGES
index 531721cef9669f2f31e919197b78c03089960474..284bab1ba551d312b9cabd7fc4df88c8bfca8315 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@
 
 Changelog for HylaFAX 4.2.2
 
+* fix job batches to properly release modems (26 Jul 2005)
 * fix build error with Mac OS X 10.4 (26 Jul 2005)
 * fix sendfax crash with verbose output (25 Jul 2005)
 * fix a race with scheduled jobs to allow for coordinated
index ca3398496eb0493ffe19370b397e234065c9be11..e2f236748fa6fddc5569a1dcd842b5b1c73fac60 100644 (file)
@@ -1417,8 +1417,8 @@ faxQueueApp::sendJobDone(Job& job, int status)
            time_t now = Sys::now();
            time_t duration = now - job.start;
            logError("JOB %s: SEND FINISHED: %s; but job file vanished",
-               (const char*) job.jobid, fmtTime(duration));
-           setDead(job);
+               (const char*) cjob->jobid, fmtTime(duration));
+           setDead(*cjob);
            continue;
        }
        sendJobDone(*cjob, req);
@@ -2433,13 +2433,14 @@ faxQueueApp::assignModem(Job& job, const DestControlInfo& dci)
 void
 faxQueueApp::releaseModem(Job& job)
 {
-    fxAssert(job.modem != NULL, "No assigned modem to release");
-    if (job.bnext == NULL && job.bprev == NULL) {
-       Trigger::post(Trigger::MODEM_RELEASE, *job.modem);
-       job.modem->release();
-       pokeScheduler();
+    Trigger::post(Trigger::MODEM_RELEASE, *job.modem);
+    job.modem->release();
+    pokeScheduler();
+    Job* cjob;
+    for (cjob = &job; cjob != NULL; cjob = cjob->bnext) {
+       fxAssert(cjob->modem != NULL, "No assigned modem to release");
+       cjob->modem = NULL;                     // remove reference to modem
     }
-    job.modem = NULL;                  // remove reference to modem
 }
 
 /*