Ejemplo n.º 1
0
int conndata_init(struct conn_data *data)
{
	memset(data, 0, sizeof(*data));
	INIT_LIST_HEAD(&data->work_items);

	if (pthread_mutex_init(&data->workers_lock, NULL))
		return -1;
	if (pthread_cond_init(&data->workers_cond, NULL))
		goto err_mutex;
	if (initialize_workers(data))
		goto err_cond;

	return 0;

err_cond:
	pthread_cond_destroy(&data->workers_cond);
err_mutex:
	pthread_mutex_destroy(&data->workers_lock);

	return -1;
}
Ejemplo n.º 2
0
 pool()
 {
     auto hwc = ecst::thread::hardware_concurrency();
     auto worker_count = hwc;
     initialize_workers(worker_count);
 }