NewMadeleine

Documentation

nm_core_task_s Struct Reference

asynchronous tasks for nmad core. More...

#include <nm_core_interface.h>

Collaboration diagram for nm_core_task_s:

Data Fields

enum nm_core_task_kind_e kind
 
union {
   struct {
      struct nm_matching_container_s   matching
 
   }   unpack_next
 
   struct {
      struct nm_pkt_wrap_s *   p_pw
 
   }   completed_pw
 
   struct {
      struct nm_pkt_wrap_s *   p_pw
 
   }   completed_prefetch
 
   struct {
      struct nm_req_chunk_s *   p_req_chunk
 
   }   pack_submission
 
   struct {
      struct nm_pkt_wrap_s *   p_pw
 
   }   rtr_send
 
   struct {
      void(*   p_handler )(void)
 
   }   handler
 
content
 

Detailed Description

asynchronous tasks for nmad core.

These tasks are sheduled asynchronously and not immediately in 2 cases:

  1. they need the core lock but are scheduled from a code that doesn't hold the lock (we avoid to acquire/release the lock too often).
  2. they trigger the processing of one more request or packet after a completion, which could lead to unbounded recursion. Tasks are comprised of a kind and a parameter. They are combined in a struct preallocated in the parameter.

Definition at line 350 of file nm_core_interface.h.

Field Documentation

◆ 

struct { ... } nm_core_task_s::completed_prefetch

◆ 

struct { ... } nm_core_task_s::completed_pw

Referenced by nm_pw_completed_enqueue().

◆ 

union { ... } nm_core_task_s::content

◆ 

struct { ... } nm_core_task_s::handler

◆ kind

enum nm_core_task_kind_e nm_core_task_s::kind

Definition at line 352 of file nm_core_interface.h.

Referenced by nm_pw_completed_enqueue(), and nm_req_chunk_submit().

◆ matching

struct nm_matching_container_s nm_core_task_s::matching

Definition at line 357 of file nm_core_interface.h.

◆ p_handler

void(* nm_core_task_s::p_handler) (void)

Definition at line 377 of file nm_core_interface.h.

◆ p_pw

struct nm_pkt_wrap_s* nm_core_task_s::p_pw

Definition at line 361 of file nm_core_interface.h.

Referenced by nm_pw_completed_enqueue().

◆ p_req_chunk

struct nm_req_chunk_s* nm_core_task_s::p_req_chunk

Definition at line 369 of file nm_core_interface.h.

Referenced by nm_req_chunk_submit().

◆ 

struct { ... } nm_core_task_s::pack_submission

Referenced by nm_req_chunk_submit().

◆ 

struct { ... } nm_core_task_s::rtr_send

◆ 

struct { ... } nm_core_task_s::unpack_next

The documentation for this struct was generated from the following file: