Skip to content
Snippets Groups Projects
  • Florian Fischer's avatar
    06b5bf0f
    [IO] Implement configurable "simple architecture" · 06b5bf0f
    Florian Fischer authored
    Introduce a new meson option io_single_uring which causes EMPER
    to only use the GlobalIoContexts for all IO.
    
    To submit SQEs to the io_uring SQ SubmitActor is used.
    
    Futures can be in a new state where they are submitted to the SubmitActor
    but not to the io_uring yet.
    In this state isSubmitted && !isPrepared th Future must not be destroyed
    to ensure this we yield when forgetting a Future until it is prepared
    and thus it is safe to destroy it.
    
    This commit contains no optimizations (no batching, no try non blocking
    syscall first, ...)
    
    Refacter GlobalIoContext.cpp:
    
    * rename globalCompleter to completer
    * make the completer loop non-static
    06b5bf0f
    History
    [IO] Implement configurable "simple architecture"
    Florian Fischer authored
    Introduce a new meson option io_single_uring which causes EMPER
    to only use the GlobalIoContexts for all IO.
    
    To submit SQEs to the io_uring SQ SubmitActor is used.
    
    Futures can be in a new state where they are submitted to the SubmitActor
    but not to the io_uring yet.
    In this state isSubmitted && !isPrepared th Future must not be destroyed
    to ensure this we yield when forgetting a Future until it is prepared
    and thus it is safe to destroy it.
    
    This commit contains no optimizations (no batching, no try non blocking
    syscall first, ...)
    
    Refacter GlobalIoContext.cpp:
    
    * rename globalCompleter to completer
    * make the completer loop non-static