]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
move fr_dlist_remove to static inline
authorAlan T. DeKok <aland@freeradius.org>
Mon, 1 May 2017 15:00:17 +0000 (11:00 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 1 May 2017 15:00:17 +0000 (11:00 -0400)
src/lib/io/time.c
src/lib/io/time.h
src/lib/io/worker.c

index 7875e1759c6b8f39791df1e2a2b64a39f6b87e67..451661c0ef40495b0444c083842e61656a3bde17 100644 (file)
@@ -237,7 +237,7 @@ void fr_time_tracking_resume(fr_time_tracking_t *tt, fr_time_t when)
         *      Remove this request into the workers list of waiting
         *      requests.
         */
-       FR_DLIST_REMOVE(tt->list);
+       fr_dlist_remove(&tt->list);
 }
 
 
index cca5ef30fc906848fc7aeb52848c965c89bdeb75..9ae4846d3686a281e8cdaf6134be94a26516fa6b 100644 (file)
@@ -79,7 +79,7 @@ typedef struct fr_time_tracking_t {
 #define USEC   (1000000)
 
 /*
- *     Macros to manage a doubly linked list.
+ *     Functions to manage a doubly linked list.
  */
 #define FR_DLIST_INIT(head) do { head.prev = head.next = &head; } while (0)
 static inline void fr_dlist_insert_head(fr_dlist_t *head, fr_dlist_t *entry)
@@ -98,7 +98,13 @@ static inline void fr_dlist_insert_tail(fr_dlist_t *head, fr_dlist_t *entry)
        head->prev = entry;
 }
 
-#define FR_DLIST_REMOVE(entry) do { entry.prev->next = entry.next; entry.next->prev = entry.prev; FR_DLIST_INIT(entry); } while (0)
+static inline void fr_dlist_remove(fr_dlist_t *entry)
+{
+       entry->prev->next = entry->next;
+       entry->next->prev = entry->prev;
+       entry->prev = entry->next = entry;
+}
+
 #define FR_DLIST_FIRST(head) (head.next == &head) ? NULL : head.next
 #define FR_DLIST_NEXT(head, p_entry) (p_entry->next == &head) ? NULL : p_entry->next
 #define FR_DLIST_TAIL(head) (head.prev == &head) ? NULL : head.prev
index bd792e1c8d36c6f101107384eee8aae656607cbb..ee864dff65f5df5104b15c5d3b5beae9334b7235 100644 (file)
@@ -144,12 +144,12 @@ struct fr_worker_t {
 
 #define WORKER_HEAP_POP(_name, _var, _member) do { \
                _var = fr_heap_pop(worker->_name.heap); \
-               if (_var) FR_DLIST_REMOVE(_var->_member); \
+               if (_var) fr_dlist_remove(&_var->_member); \
        } while (0)
 
 #define WORKER_HEAP_EXTRACT(_name, _var, _member) do { \
                (void) fr_heap_extract(worker->_name.heap, _var); \
-               FR_DLIST_REMOVE(_var->_member); \
+               fr_dlist_remove(&_var->_member);                         \
        } while (0)
 
 
@@ -471,7 +471,7 @@ static void fr_worker_send_reply(fr_worker_t *worker, REQUEST *request, size_t s
         *      @todo Use a talloc pool for the request.  Clean it up,
         *      and insert it back into a slab allocator.
         */
-       FR_DLIST_REMOVE(request->time_order);
+       fr_dlist_remove(&request->time_order);
        talloc_free(request);
 }
 
@@ -561,7 +561,7 @@ static void fr_worker_check_timeouts(fr_worker_t *worker, fr_time_t now)
                /*
                 *      Waiting too long, delete it.
                 */
-               FR_DLIST_REMOVE(request->time_order);
+               fr_dlist_remove(&request->time_order);
                (void) fr_heap_extract(worker->runnable, request);
 
                final = request->process_async(request, FR_TRANSPORT_ACTION_DONE);
@@ -593,7 +593,7 @@ static void fr_worker_check_timeouts(fr_worker_t *worker, fr_time_t now)
                final = request->process_async(request, FR_TRANSPORT_ACTION_DONE);
 
                if (final == FR_TRANSPORT_DONE) {
-                       FR_DLIST_REMOVE(worker->waiting_to_die);
+                       fr_dlist_remove(&worker->waiting_to_die);
 
                        fr_log(worker->log, L_DBG, "(%zd) finally finished", request->number);
 
@@ -812,7 +812,7 @@ static void fr_worker_run_request(fr_worker_t *worker, REQUEST *request)
                 *      async cleanup queue.
                 */
                if (final != FR_TRANSPORT_DONE) {
-                       FR_DLIST_REMOVE(request->time_order);
+                       fr_dlist_remove(&request->time_order);
                        fr_dlist_insert_tail(&worker->waiting_to_die, &request->time_order);
                        return;
                }
@@ -1188,7 +1188,7 @@ void worker_resume_request(REQUEST *request)
         *      it isn't resumed (yet) so we don't add CPU time for
         *      it.
         */
-       FR_DLIST_REMOVE(request->tracking.list);
+       fr_dlist_remove(&request->tracking.list);
 
        /*
         *      It's runnable again.