fr_time_tracking_yield(&request->async->tracking, now);
worker->num_active++;
- fr_assert(!fr_heap_entry_inserted(request->runnable_id));
+ fr_assert(!fr_heap_entry_inserted(request->runnable));
(void) fr_heap_insert(&worker->runnable, request);
return 0;
/*
* If we're sending a reply, then it's no longer runnable.
*/
- fr_assert(!fr_heap_entry_inserted(request->runnable_id));
+ fr_assert(!fr_heap_entry_inserted(request->runnable));
if (send_reply) {
size = request->async->listen->app_io->default_reply_size;
worker->stats.out++;
fr_assert(!fr_timer_armed(request->timeout));
- fr_assert(!fr_heap_entry_inserted(request->runnable_id));
+ fr_assert(!fr_heap_entry_inserted(request->runnable));
fr_dlist_entry_unlink(&request->listen_entry);
worker_request_time_tracking_end(worker, request, fr_time());
- fr_assert(!fr_heap_entry_inserted(request->runnable_id));
+ fr_assert(!fr_heap_entry_inserted(request->runnable));
fr_assert(!fr_timer_armed(request->timeout));
fr_assert(!fr_dlist_entry_in_list(&request->async->entry));
}
* so we don't need to call
* worker_request_time_tracking_end.
*/
- fr_assert(!fr_heap_entry_inserted(request->runnable_id));
+ fr_assert(!fr_heap_entry_inserted(request->runnable));
/*
* Normally worker_request_time_tracking_end
* yank it back out, so it's not "runnable"
* when we call request done.
*/
- if (fr_heap_entry_inserted(request->runnable_id)) fr_heap_extract(&worker->runnable, request);
+ if (fr_heap_entry_inserted(request->runnable)) fr_heap_extract(&worker->runnable, request);
}
/** Request is now runnable
*/
static bool _worker_request_scheduled(request_t const *request, UNUSED void *uctx)
{
- return fr_heap_entry_inserted(request->runnable_id);
+ return fr_heap_entry_inserted(request->runnable);
}
/** Run a request
((request = fr_heap_pop(&worker->runnable)) != NULL)) {
REQUEST_VERIFY(request);
- fr_assert(!fr_heap_entry_inserted(request->runnable_id));
+ fr_assert(!fr_heap_entry_inserted(request->runnable));
/*
* For real requests, if the channel is gone,
goto fail;
}
- worker->runnable = fr_heap_talloc_alloc(worker, worker_runnable_cmp, request_t, runnable_id, 0);
+ worker->runnable = fr_heap_talloc_alloc(worker, worker_runnable_cmp, request_t, runnable, 0);
if (!worker->runnable) {
fr_strerror_const("Failed creating runnable heap");
goto fail;
request->alloc_file,
request->alloc_line,
request->name ? request->name : "(null)");
- fr_assert_msg(!fr_heap_entry_inserted(request->runnable_id),
+ fr_assert_msg(!fr_heap_entry_inserted(request->runnable),
"alloced %s:%i: %s still in the runnable heap ID %i",
request->alloc_file,
request->alloc_line,
- request->name ? request->name : "(null)", request->runnable_id);
+ request->name ? request->name : "(null)", request->runnable);
RDEBUG3("Request freed (%p)", request);
memset(request, 0, sizeof(*request));
request->component = "free_list";
#ifndef NDEBUG
- request->runnable_id = FR_HEAP_INDEX_INVALID;
+ request->runnable = FR_HEAP_INDEX_INVALID;
#endif
/*
fr_rb_node_t dedup_node; //!< entry in the deduplication tree.
- fr_heap_index_t runnable_id; //!< entry in the heap of runnable packets
-
fr_timer_t *timeout; //!< Timer event for this request. This tracks when we need to
///< forcefully terminate a request.
fr_dlist_t listen_entry; //!< request's entry in the list for this listener / socket
fr_dlist_t free_entry; //!< Request's entry in the free list.
+ fr_heap_index_t runnable; //!< entry in the heap of runnable packets
+
}; /* request_t typedef */
/** Optional arguments for initialising requests
static bool _request_scheduled(request_t const *request, UNUSED void *uctx)
{
- return fr_heap_entry_inserted(request->runnable_id);
+ return fr_heap_entry_inserted(request->runnable);
}
/** Allocate a new temporary interpreter
unlang_interpret_synchronous_t *intps;
MEM(intps = talloc_zero(ctx, unlang_interpret_synchronous_t));
- MEM(intps->runnable = fr_heap_talloc_alloc(intps, fr_pointer_cmp, request_t, runnable_id, 0));
+ MEM(intps->runnable = fr_heap_talloc_alloc(intps, fr_pointer_cmp, request_t, runnable, 0));
if (el) {
intps->el = el;
} else {