96 const char *myname =
"qmgr_peer_free";
106 msg_panic(
"%s: entry list not empty: %s", myname, queue->
name);
147 msg_info(
"qmgr_peer_select: %s %s %s (%d of %d)",
QMGR_PEER * qmgr_peer_select(QMGR_JOB *job)
NORETURN msg_panic(const char *fmt,...)
QMGR_PEER * qmgr_peer_create(QMGR_JOB *job, QMGR_QUEUE *queue)
void qmgr_peer_free(QMGR_PEER *peer)
struct HTABLE * peer_byname
#define QMGR_LIST_INIT(head)
#define QMGR_LIST_APPEND(head, object)
#define QMGR_LIST_ROTATE(head, object)
void * htable_find(HTABLE *table, const char *key)
QMGR_TRANSPORT * transport
#define QMGR_LIST_UNLINK(head, type, object)
QMGR_PEER * qmgr_peer_find(QMGR_JOB *job, QMGR_QUEUE *queue)
QMGR_PEER * qmgr_peer_obtain(QMGR_JOB *job, QMGR_QUEUE *queue)
void htable_delete(HTABLE *table, const char *key, void(*free_fn)(void *))
QMGR_ENTRY_LIST entry_list
void * mymalloc(ssize_t len)
HTABLE_INFO * htable_enter(HTABLE *table, const char *key, void *value)
void msg_info(const char *fmt,...)