Skip to content
  • Dan Williams's avatar
    libnm: queue added/removed signals and suppress uninitialized notifications · 52ae28f6
    Dan Williams authored
    Property notifications are queued during object initialization and
    reloading, but the added/removed signals were emitted immediately
    even before the object was fully initialized.
    
    Additionally, depending on how long asynchronous initialization took,
    the notifications could have been emitted before the object was
    fully initialized as deferred_notify_cb() wasn't being suppressed
    until all the properties were complete.
    
    For synchronous intialization, signals could be emitted at various
    times during initialization and not all of the object's properties
    may be read.  Furthermore property notifications were queued in an
    idle handler, which breaks users that may not use a mainloop.  All
    signals and notifications should be emitted immediately after
    initialization is complete for synchronous initialization.
    
    To make things consistent and ensure that all signals and notifications
    are emitted only when initialization is complete, queue signals for
    deferred emission and only run notifications/signals when all the
    object's properties have been read.  For synchronous initialization,
    emit all notifications and signals immediately after initialization
    and not from an idle handler.
    52ae28f6