Remove backgroud jobs from the queue only when the processing was completed, and not just started.
This commit is contained in:
parent
50be9b97bc
commit
1317b7c233
@ -118,7 +118,6 @@ void *bioProcessBackgroundJobs(void *arg) {
|
|||||||
/* Pop the job from the queue. */
|
/* Pop the job from the queue. */
|
||||||
ln = listFirst(bio_jobs[type]);
|
ln = listFirst(bio_jobs[type]);
|
||||||
job = ln->value;
|
job = ln->value;
|
||||||
listDelNode(bio_jobs[type],ln);
|
|
||||||
/* It is now possible to unlock the background system as we know have
|
/* It is now possible to unlock the background system as we know have
|
||||||
* a stand alone job structure to process.*/
|
* a stand alone job structure to process.*/
|
||||||
pthread_mutex_unlock(&bio_mutex[type]);
|
pthread_mutex_unlock(&bio_mutex[type]);
|
||||||
@ -134,6 +133,7 @@ void *bioProcessBackgroundJobs(void *arg) {
|
|||||||
/* Lock again before reiterating the loop, if there are no longer
|
/* Lock again before reiterating the loop, if there are no longer
|
||||||
* jobs to process we'll block again in pthread_cond_wait(). */
|
* jobs to process we'll block again in pthread_cond_wait(). */
|
||||||
pthread_mutex_lock(&bio_mutex[type]);
|
pthread_mutex_lock(&bio_mutex[type]);
|
||||||
|
listDelNode(bio_jobs[type],ln);
|
||||||
bio_pending[type]--;
|
bio_pending[type]--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user