diff options
author | Ralph Boehme <slow@samba.org> | 2018-12-28 09:02:54 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2019-01-11 23:11:14 +0100 |
commit | 9e4bc1f4a9b0f9400e198680dfddfa8cd112ce2b (patch) | |
tree | edd2d7edd4c365b798f27a9b0573bf26975709cc /lib/pthreadpool | |
parent | 991ca9b56460912ff1024f9ff443200195e507fa (diff) | |
download | samba-9e4bc1f4a9b0f9400e198680dfddfa8cd112ce2b.tar.gz |
Revert "pthreadpool: maintain a global list of orphaned pthreadpool_tevent_jobs"
This reverts commit 25756425aaf5465e56ea809cd415b6a387848919.
See the discussion in
https://lists.samba.org/archive/samba-technical/2018-December/131731.html
for the reasoning behind this revert.
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'lib/pthreadpool')
-rw-r--r-- | lib/pthreadpool/pthreadpool_tevent.c | 41 | ||||
-rw-r--r-- | lib/pthreadpool/pthreadpool_tevent.h | 2 |
2 files changed, 0 insertions, 43 deletions
diff --git a/lib/pthreadpool/pthreadpool_tevent.c b/lib/pthreadpool/pthreadpool_tevent.c index 3eca605d0c4..7fc49ce671e 100644 --- a/lib/pthreadpool/pthreadpool_tevent.c +++ b/lib/pthreadpool/pthreadpool_tevent.c @@ -82,24 +82,6 @@ static int pthreadpool_tevent_destructor(struct pthreadpool_tevent *pool); static void pthreadpool_tevent_job_orphan(struct pthreadpool_tevent_job *job); -static struct pthreadpool_tevent_job *orphaned_jobs; - -void pthreadpool_tevent_cleanup_orphaned_jobs(void) -{ - struct pthreadpool_tevent_job *job = NULL; - struct pthreadpool_tevent_job *njob = NULL; - - for (job = orphaned_jobs; job != NULL; job = njob) { - njob = job->next; - - /* - * The job destructor keeps the job alive - * (and in the list) or removes it from the list. - */ - TALLOC_FREE(job); - } -} - static int pthreadpool_tevent_job_signal(int jobid, void (*job_fn)(void *private_data), void *job_private_data, @@ -111,8 +93,6 @@ int pthreadpool_tevent_init(TALLOC_CTX *mem_ctx, unsigned max_threads, struct pthreadpool_tevent *pool; int ret; - pthreadpool_tevent_cleanup_orphaned_jobs(); - pool = talloc_zero(mem_ctx, struct pthreadpool_tevent); if (pool == NULL) { return ENOMEM; @@ -185,8 +165,6 @@ static int pthreadpool_tevent_destructor(struct pthreadpool_tevent *pool) } pool->pool = NULL; - pthreadpool_tevent_cleanup_orphaned_jobs(); - return 0; } @@ -340,18 +318,10 @@ static int pthreadpool_tevent_job_destructor(struct pthreadpool_tevent_job *job) /* * state->im still there means, we need to wait for the * immediate event to be triggered or just leak the memory. - * - * Move it to the orphaned list, if it's not already there. */ return -1; } - /* - * Finally remove from the orphaned_jobs list - * and let talloc destroy us. - */ - DLIST_REMOVE(orphaned_jobs, job); - return 0; } @@ -393,15 +363,6 @@ static void pthreadpool_tevent_job_orphan(struct pthreadpool_tevent_job *job) */ DLIST_REMOVE(job->pool->jobs, job); - /* - * Add it to the list of orphaned jobs, - * which may be cleaned up later. - * - * The destructor removes it from the list - * when possible or it denies the free - * and keep it in the list. - */ - DLIST_ADD_END(orphaned_jobs, job); TALLOC_FREE(job); } @@ -440,8 +401,6 @@ struct tevent_req *pthreadpool_tevent_job_send( struct pthreadpool_tevent_job *job = NULL; int ret; - pthreadpool_tevent_cleanup_orphaned_jobs(); - req = tevent_req_create(mem_ctx, &state, struct pthreadpool_tevent_job_state); if (req == NULL) { diff --git a/lib/pthreadpool/pthreadpool_tevent.h b/lib/pthreadpool/pthreadpool_tevent.h index fdb86e23757..10d3a71c40a 100644 --- a/lib/pthreadpool/pthreadpool_tevent.h +++ b/lib/pthreadpool/pthreadpool_tevent.h @@ -22,8 +22,6 @@ #include <tevent.h> -void pthreadpool_tevent_cleanup_orphaned_jobs(void); - struct pthreadpool_tevent; int pthreadpool_tevent_init(TALLOC_CTX *mem_ctx, unsigned max_threads, |