mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-02-19 08:16:31 +00:00
refactoring
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user