zbx_setproctitle("%s #%d [connecting to the database]", get_process_type_string(process_type), process_num);
#include "avail_manager.h"
#include "zbxavailability.h"
#include "zbxipcservice.h"
#include "avail_protocol.h"
extern ZBX_THREAD_LOCAL unsigned char process_type;
extern unsigned char program_type;
extern ZBX_THREAD_LOCAL int server_num, process_num;
static sigset_t orig_mask;
#define ZBX_AVAILABILITY_MANAGER_DELAY 1
#define ZBX_AVAILABILITY_MANAGER_FLUSH_DELAY_SEC 5
static int interface_availability_compare(const void *d1, const void *d2)
const zbx_interface_availability_t *ia1 = *(const zbx_interface_availability_t **)d1;
const zbx_interface_availability_t *ia2 = *(const zbx_interface_availability_t **)d2;
ZBX_RETURN_IF_NOT_EQUAL(ia1->interfaceid, ia2->interfaceid);
return ia1->id - ia2->id;
ZBX_THREAD_ENTRY(availability_manager_thread, args)
zbx_ipc_service_t service;
zbx_ipc_client_t *client;
zbx_ipc_message_t *message;
int ret, processed_num = 0;
double time_stat, time_idle = 0, time_now, time_flush, sec;
zbx_vector_availability_ptr_t interface_availabilities;
zbx_timespec_t timeout = {ZBX_AVAILABILITY_MANAGER_DELAY, 0};