watcher: use processors new execute_job() to notify FDs
Just queueing is problematic, as all threads might be busy waiting for events that the queued (but never executed) job delivers.
This commit is contained in:
@@ -325,15 +325,7 @@ static job_requeue_t watch(private_watcher_t *this)
|
|||||||
while (this->jobs->remove_first(this->jobs,
|
while (this->jobs->remove_first(this->jobs,
|
||||||
(void**)&job) == SUCCESS)
|
(void**)&job) == SUCCESS)
|
||||||
{
|
{
|
||||||
if (lib->processor->get_threads(lib->processor))
|
lib->processor->execute_job(lib->processor, job);
|
||||||
{
|
|
||||||
lib->processor->queue_job(lib->processor, job);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
job->execute(job);
|
|
||||||
job->destroy(job);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* we temporarily disable a notified FD, rebuild FDSET */
|
/* we temporarily disable a notified FD, rebuild FDSET */
|
||||||
return JOB_REQUEUE_DIRECT;
|
return JOB_REQUEUE_DIRECT;
|
||||||
|
|||||||
Reference in New Issue
Block a user