f->n_vectors = 0;
f->scalar_size = scalar_size;
f->vector_size = vector_size;
+ f->flags = 0;
fs->n_alloc_frames += 1;
ASSERT (p->flags & (VLIB_PROCESS_IS_SUSPENDED_WAITING_FOR_CLOCK
| VLIB_PROCESS_IS_SUSPENDED_WAITING_FOR_EVENT));
- pf =
- pool_elt_at_index (nm->suspended_process_frames,
- p->suspended_process_frame_index);
+ pf = pool_elt_at_index (nm->suspended_process_frames,
+ p->suspended_process_frame_index);
node_runtime = &p->node_runtime;
node = vlib_get_node (vm, node_runtime->node_index);
else
{
p->flags &= ~VLIB_PROCESS_IS_RUNNING;
+ pool_put_index (nm->suspended_process_frames,
+ p->suspended_process_frame_index);
p->suspended_process_frame_index = ~0;
- pool_put (nm->suspended_process_frames, pf);
}
t = clib_cpu_time_now ();
vlib_node_runtime_t *n;
if (PREDICT_FALSE (_vec_len (vm->pending_rpc_requests) > 0))
- vl_api_send_pending_rpc_requests (vm);
+ {
+ if (!is_main)
+ vl_api_send_pending_rpc_requests (vm);
+ }
if (!is_main)
{
te->n_data_elts,
te->n_data_elt_bytes);
if (te->n_data_bytes < sizeof (te->inline_event_data))
- clib_memcpy (data, te->inline_event_data,
- te->n_data_bytes);
+ clib_memcpy_fast (data, te->inline_event_data,
+ te->n_data_bytes);
else
{
- clib_memcpy (data, te->event_data_as_vector,
- te->n_data_bytes);
+ clib_memcpy_fast (data, te->event_data_as_vector,
+ te->n_data_bytes);
vec_free (te->event_data_as_vector);
}
pool_put (nm->signal_timed_event_data_pool, te);
if (!vm->name)
vm->name = "VLIB";
- if ((error = unix_physmem_init (vm)))
+ if ((error = vlib_physmem_init (vm)))
{
clib_error_report (error);
goto done;
vec_validate (vm->pending_rpc_requests, 0);
_vec_len (vm->pending_rpc_requests) = 0;
+ vec_validate (vm->processing_rpc_requests, 0);
+ _vec_len (vm->processing_rpc_requests) = 0;
switch (clib_setjmp (&vm->main_loop_exit, VLIB_MAIN_LOOP_EXIT_NONE))
{