void zbx_async_manager_requeue(zbx_async_manager_t *manager, zbx_uint64_t itemid, int errcode, int lastclock)
#include "async_manager.h"
#include "async_worker.h"
ZBX_PTR_VECTOR_IMPL(interface_status, zbx_interface_status_t *)
ZBX_PTR_VECTOR_IMPL(poller_item, zbx_poller_item_t *)
zbx_async_worker_t *workers;
zbx_async_manager_t *zbx_async_manager_create(int workers_num, zbx_async_notify_cb_t finished_cb,
void *finished_data, zbx_thread_poller_args *poller_args_in, char **error)
int ret = FAIL, started_num = 0;
struct timespec poll_delay = {0, 1e8};
zbx_async_manager_t *manager;
zabbix_log(LOG_LEVEL_DEBUG, "In %s() workers:%d", __func__, workers_num);
manager = (zbx_async_manager_t *)zbx_malloc(NULL, sizeof(zbx_async_manager_t));
memset(manager, 0, sizeof(zbx_async_manager_t));
if (SUCCEED != async_task_queue_init(&manager->queue, poller_args_in, error))
manager->workers_num = workers_num;
manager->workers = (zbx_async_worker_t *)zbx_calloc(NULL, (size_t)workers_num, sizeof(zbx_async_worker_t));
for (int i = 0; i < workers_num; i++)
if (SUCCEED != async_worker_init(&manager->workers[i], &manager->queue,
poller_args_in->zbx_get_progname_cb_arg(), error))
async_worker_set_finished_cb(&manager->workers[i], finished_cb, finished_data);