Skip to content
  • Thomas Haller's avatar
    device: implement "auth-request" as async operation nm_manager_device_auth_request() · fa5434fa
    Thomas Haller authored
    GObject signals only complicate the code and are less efficient.
    
    Also, NM_DEVICE_AUTH_REQUEST signal really invoked an asynchronous
    request. Of course, fundamentally emitting a signal *is* the same as
    calling a method. However, implementing this as signal is really not
    nice nor best practice. For one, there is a (negligible) overhead emitting
    a GObject signal. But what is worse, GObject signals are not as strongly
    typed and make it harder to understand what happens.
    
    The signal had the appearance of providing some special decoupling of
    NMDevice and NMManager. Of course, in practice, they were not more
    decoupled (both forms are the same in nature), but it was harder to
    understand how they work together.
    
    Add and call a method nm_manager_device_auth_request() instead. This
    has the notion of invoking an asynchronous method. Also, never invoke
    the callback synchronously and provide a cancellable. Like every asynchronous
    operation, it *must* be cancellable, and callers should make sure to
    provide a mechanism to abort.
    
    (cherry picked from commit b5070277)
    fa5434fa