Skip to content
Snippets Groups Projects
  • Florian Fischer's avatar
    827b79ae
    [IO] add callback support · 827b79ae
    Florian Fischer authored
    Futures can have a registered Callback of type
    std::function<void(const uint32_t&)> which gets called in a new
    Fiber with the result of the IO Request.
    Note the first completion will cause the execution of a callback and
    partial completion support must be implemented manually in the callback.
    
    Callbacks are stored in a heap allocated std::function on registration
    and are freed by the new Fiber after the callback returned;
    
    The Future with a registered Callback is not referenced in any way in
    the IO subsystem and therefore can be dropped after being submitted.
    This also means that a Future with a registered callback will not be
    signaled by the IO subsystem on completion.
    If signaling is desired one must implement it manually in the registered
    callback.
    827b79ae
    History
    [IO] add callback support
    Florian Fischer authored
    Futures can have a registered Callback of type
    std::function<void(const uint32_t&)> which gets called in a new
    Fiber with the result of the IO Request.
    Note the first completion will cause the execution of a callback and
    partial completion support must be implemented manually in the callback.
    
    Callbacks are stored in a heap allocated std::function on registration
    and are freed by the new Fiber after the callback returned;
    
    The Future with a registered Callback is not referenced in any way in
    the IO subsystem and therefore can be dropped after being submitted.
    This also means that a Future with a registered callback will not be
    signaled by the IO subsystem on completion.
    If signaling is desired one must implement it manually in the registered
    callback.