From e4dfd3da94c097fa9cd3fea4ad6dfc4af8ca2a45 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 22 Jun 2018 01:01:42 +0200 Subject: [PATCH] pthreadpool: add pthreadpool_tevent_max_threads() and pthreadpool_tevent_queued_jobs() These can be used to implement some kind of flow control in the caller. E.g. unless pthreadpool_tevent_queued_jobs() is lower than pthreadpool_tevent_max_threads() is good to prepare new jobs. Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- lib/pthreadpool/pthreadpool_tevent.c | 18 ++++++++++++++++++ lib/pthreadpool/pthreadpool_tevent.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/lib/pthreadpool/pthreadpool_tevent.c b/lib/pthreadpool/pthreadpool_tevent.c index b2292ef214c..db6d4b2f2e8 100644 --- a/lib/pthreadpool/pthreadpool_tevent.c +++ b/lib/pthreadpool/pthreadpool_tevent.c @@ -102,6 +102,24 @@ int pthreadpool_tevent_init(TALLOC_CTX *mem_ctx, unsigned max_threads, return 0; } +size_t pthreadpool_tevent_max_threads(struct pthreadpool_tevent *pool) +{ + if (pool->pool == NULL) { + return 0; + } + + return pthreadpool_max_threads(pool->pool); +} + +size_t pthreadpool_tevent_queued_jobs(struct pthreadpool_tevent *pool) +{ + if (pool->pool == NULL) { + return 0; + } + + return pthreadpool_queued_jobs(pool->pool); +} + static int pthreadpool_tevent_destructor(struct pthreadpool_tevent *pool) { struct pthreadpool_tevent_job_state *state, *next; diff --git a/lib/pthreadpool/pthreadpool_tevent.h b/lib/pthreadpool/pthreadpool_tevent.h index de74a347e25..10d3a71c40a 100644 --- a/lib/pthreadpool/pthreadpool_tevent.h +++ b/lib/pthreadpool/pthreadpool_tevent.h @@ -27,6 +27,9 @@ struct pthreadpool_tevent; int pthreadpool_tevent_init(TALLOC_CTX *mem_ctx, unsigned max_threads, struct pthreadpool_tevent **presult); +size_t pthreadpool_tevent_max_threads(struct pthreadpool_tevent *pool); +size_t pthreadpool_tevent_queued_jobs(struct pthreadpool_tevent *pool); + struct tevent_req *pthreadpool_tevent_job_send( TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct pthreadpool_tevent *pool, -- 2.47.3