diff --git a/src/ustreamer/encoder.c b/src/ustreamer/encoder.c index fd52b3a..cb17a1e 100644 --- a/src/ustreamer/encoder.c +++ b/src/ustreamer/encoder.c @@ -36,7 +36,7 @@ static const struct { }; -static void *_worker_job_init(worker_s *wr, void *v_enc); +static void *_worker_job_init(void *v_enc); static void _worker_job_destroy(void *v_job); static bool _worker_run_job(worker_s *wr); diff --git a/src/ustreamer/workers.c b/src/ustreamer/workers.c index dab87d0..fd66fb6 100644 --- a/src/ustreamer/workers.c +++ b/src/ustreamer/workers.c @@ -28,9 +28,9 @@ static void *_worker_thread(void *v_worker); workers_pool_s *workers_pool_init( const char *name, const char *wr_prefix, unsigned n_workers, long double desired_interval, - void *(*job_init)(worker_s *wr, void *arg), void *job_init_arg, - void (*job_destroy)(void *), - bool (*run_job)(worker_s *)) { + workers_pool_job_init_f job_init, void *job_init_arg, + workers_pool_job_destroy_f job_destroy, + workers_pool_run_job_f run_job) { LOG_INFO("Creating pool %s with %u workers ...", name, n_workers); @@ -60,7 +60,7 @@ workers_pool_s *workers_pool_init( A_COND_INIT(&WR(has_job_cond)); WR(pool) = pool; - WR(job) = job_init(&pool->workers[number], job_init_arg); + WR(job) = job_init(job_init_arg); A_THREAD_CREATE(&WR(tid), _worker_thread, (void *)&(pool->workers[number])); pool->free_workers += 1; diff --git a/src/ustreamer/workers.h b/src/ustreamer/workers.h index ced6988..3b80104 100644 --- a/src/ustreamer/workers.h +++ b/src/ustreamer/workers.h @@ -55,12 +55,16 @@ typedef struct worker_sx { struct workers_pool_sx *pool; } worker_s; +typedef void *(*workers_pool_job_init_f)(void *arg); +typedef void (*workers_pool_job_destroy_f)(void *job); +typedef bool (*workers_pool_run_job_f)(worker_s *wr); + typedef struct workers_pool_sx { const char *name; long double desired_interval; - bool (*run_job)(worker_s *wr); - void (*job_destroy)(void *job); + workers_pool_job_destroy_f job_destroy; + workers_pool_run_job_f run_job; unsigned n_workers; worker_s *workers; @@ -79,9 +83,9 @@ typedef struct workers_pool_sx { workers_pool_s *workers_pool_init( const char *name, const char *wr_prefix, unsigned n_workers, long double desired_interval, - void *(*job_init)(void *arg), void *job_init_arg, - void (*job_destroy)(void *job), - bool (*run_job)(worker_s *)); + workers_pool_job_init_f job_init, void *job_init_arg, + workers_pool_job_destroy_f job_destroy, + workers_pool_run_job_f run_job); void workers_pool_destroy(workers_pool_s *pool);