From: Alan T. DeKok Date: Mon, 1 May 2017 14:34:56 +0000 (-0400) Subject: move FR_DLIST_INSERT_HEAD to static inline. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2bb7dea0cbf24c7964cf312ebe5d30158fd29c42;p=thirdparty%2Ffreeradius-server.git move FR_DLIST_INSERT_HEAD to static inline. Hopefully the compiler should inline it. --- diff --git a/src/lib/io/time.c b/src/lib/io/time.c index 075059fce67..7875e1759c6 100644 --- a/src/lib/io/time.c +++ b/src/lib/io/time.c @@ -215,7 +215,7 @@ void fr_time_tracking_yield(fr_time_tracking_t *tt, fr_time_t when, fr_time_trac * Insert this request into the TAIL of the worker's list * of waiting requests. */ - FR_DLIST_INSERT_HEAD(worker->list, tt->list); + fr_dlist_insert_head(&worker->list, &tt->list); } diff --git a/src/lib/io/time.h b/src/lib/io/time.h index ecc882aeaec..e1997418d95 100644 --- a/src/lib/io/time.h +++ b/src/lib/io/time.h @@ -82,8 +82,14 @@ typedef struct fr_time_tracking_t { * Macros to manage a doubly linked list. */ #define FR_DLIST_INIT(head) do { head.prev = head.next = &head; } while (0) -#define FR_DLIST_INSERT_HEAD(head, entry) do { entry.next = head.next; entry.prev = &head; head.next->prev = &entry; head.next = &entry; } while (0) -#define FR_DLIST_INSERT_HEAD_PTR(head, entry) do { entry.next = head->next; entry.prev = head; head->next->prev = &entry; head->next = &entry; } while (0) +static inline void fr_dlist_insert_head(fr_dlist_t *head, fr_dlist_t *entry) +{ + entry->prev = head; + entry->next = head->next; + head->next->prev = entry; + head->next = entry; +} + #define FR_DLIST_INSERT_TAIL(head, entry) do { entry.prev = head.prev; entry.next = &head; head.prev->next = &entry; head.prev = &entry; } while (0) #define FR_DLIST_INSERT_TAIL_PTR(p_head, entry) do { entry.prev = p_head->prev; entry.next = p_head; p_head->prev->next = &entry; p_head->prev = &entry; } while (0) #define FR_DLIST_REMOVE(entry) do { entry.prev->next = entry.next; entry.next->prev = entry.prev; FR_DLIST_INIT(entry); } while (0) diff --git a/src/lib/io/worker.c b/src/lib/io/worker.c index eee68f79aea..b88791e03ba 100644 --- a/src/lib/io/worker.c +++ b/src/lib/io/worker.c @@ -138,7 +138,7 @@ struct fr_worker_t { } while (0) #define WORKER_HEAP_INSERT(_name, _var, _member) do { \ - FR_DLIST_INSERT_HEAD(worker->_name.list, _var->_member); \ + fr_dlist_insert_head(&worker->_name.list, &_var->_member); \ (void) fr_heap_insert(worker->_name.heap, _var); \ } while (0) @@ -737,7 +737,7 @@ nak: */ entry = FR_DLIST_FIRST(worker->time_order); if (!entry) { - FR_DLIST_INSERT_HEAD(worker->time_order, request->time_order); + fr_dlist_insert_head(&worker->time_order, &request->time_order); } else { REQUEST *old; fr_dlist_t *prev = &worker->time_order; @@ -763,7 +763,7 @@ nak: entry = FR_DLIST_NEXT(worker->time_order, entry); } - FR_DLIST_INSERT_HEAD_PTR(prev, request->time_order); + fr_dlist_insert_head(prev, &request->time_order); } /*