Skip to content
Snippets Groups Projects
  • Nicolas Saenz Julienne's avatar
    7d5983e3
    Introduce event-loop-base abstract class · 7d5983e3
    Nicolas Saenz Julienne authored
    
    Introduce the 'event-loop-base' abstract class, it'll hold the
    properties common to all event loops and provide the necessary hooks for
    their creation and maintenance. Then have iothread inherit from it.
    
    EventLoopBaseClass is defined as user creatable and provides a hook for
    its children to attach themselves to the user creatable class 'complete'
    function. It also provides an update_params() callback to propagate
    property changes onto its children.
    
    The new 'event-loop-base' class will live in the root directory. It is
    built on its own using the 'link_whole' option (there are no direct
    function dependencies between the class and its children, it all happens
    trough 'constructor' magic). And also imposes new compilation
    dependencies:
    
        qom <- event-loop-base <- blockdev (iothread.c)
    
    And in subsequent patches:
    
        qom <- event-loop-base <- qemuutil (util/main-loop.c)
    
    All this forced some amount of reordering in meson.build:
    
     - Moved qom build definition before qemuutil. Doing it the other way
       around (i.e. moving qemuutil after qom) isn't possible as a lot of
       core libraries that live in between the two depend on it.
    
     - Process the 'hw' subdir earlier, as it introduces files into the
       'qom' source set.
    
    No functional changes intended.
    
    Signed-off-by: default avatarNicolas Saenz Julienne <nsaenzju@redhat.com>
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Acked-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-id: 20220425075723.20019-2-nsaenzju@redhat.com
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    7d5983e3
    History
    Introduce event-loop-base abstract class
    Nicolas Saenz Julienne authored
    
    Introduce the 'event-loop-base' abstract class, it'll hold the
    properties common to all event loops and provide the necessary hooks for
    their creation and maintenance. Then have iothread inherit from it.
    
    EventLoopBaseClass is defined as user creatable and provides a hook for
    its children to attach themselves to the user creatable class 'complete'
    function. It also provides an update_params() callback to propagate
    property changes onto its children.
    
    The new 'event-loop-base' class will live in the root directory. It is
    built on its own using the 'link_whole' option (there are no direct
    function dependencies between the class and its children, it all happens
    trough 'constructor' magic). And also imposes new compilation
    dependencies:
    
        qom <- event-loop-base <- blockdev (iothread.c)
    
    And in subsequent patches:
    
        qom <- event-loop-base <- qemuutil (util/main-loop.c)
    
    All this forced some amount of reordering in meson.build:
    
     - Moved qom build definition before qemuutil. Doing it the other way
       around (i.e. moving qemuutil after qom) isn't possible as a lot of
       core libraries that live in between the two depend on it.
    
     - Process the 'hw' subdir earlier, as it introduces files into the
       'qom' source set.
    
    No functional changes intended.
    
    Signed-off-by: default avatarNicolas Saenz Julienne <nsaenzju@redhat.com>
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Acked-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-id: 20220425075723.20019-2-nsaenzju@redhat.com
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>