From: Stefan Metzmacher Date: Fri, 22 Jun 2018 15:22:10 +0000 (+0200) Subject: pthreadpool: add a comment about a further optimization in pthreadpool_tevent_job_des... X-Git-Tag: ldb-1.5.0~227 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f23cac39b36b026650e0922c78fe0fd3fe567e35;p=thirdparty%2Fsamba.git pthreadpool: add a comment about a further optimization in pthreadpool_tevent_job_destructor() This seems to be a really rare race, it's likely that the immediate event will still trigger and cleanup. Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- diff --git a/lib/pthreadpool/pthreadpool_tevent.c b/lib/pthreadpool/pthreadpool_tevent.c index 3b502a7cc5a..94b6b9ded8f 100644 --- a/lib/pthreadpool/pthreadpool_tevent.c +++ b/lib/pthreadpool/pthreadpool_tevent.c @@ -491,6 +491,23 @@ static int pthreadpool_tevent_job_destructor(struct pthreadpool_tevent_job *job) TALLOC_FREE(job->im); } + /* + * TODO?: We could further improve this by adjusting + * tevent_threaded_schedule_immediate_destructor() + * and allow TALLOC_FREE() during its time + * in the main_ev->scheduled_immediates list. + * + * PTHREAD_TEVENT_JOB_THREAD_FENCE(job); + * if (state->needs_fence.signaled) { + * * + * * The signal function is completed + * * in future we may be allowed + * * to call TALLOC_FREE(job->im). + * * + * TALLOC_FREE(job->im); + * } + */ + /* * pthreadpool_tevent_job_orphan() already removed * it from pool->jobs. And we don't need try