Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Control SD sync/async behaviour with env var on QNX #710

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on May 28, 2024

  1. Control SD sync/async behaviour with env var on QNX

    This is a change intended for systems like QNX which do not generally
    have a service like netlink monitoring the network status that can
    easily be tied into.  This is not setup to be used/enabled on Linux/Android.
    
    SD will use the new asynchronous behaviour if the env var
    VSOMEIP_USE_ASYNCHRONOUS_SD is set.  If not set, SD will use a
    synchronous behaviour and only wait for the interface if the env var
    VSOMEIP_WAIT_FOR_INTERFACE exists.  The latter (without waiting) is very
    close to the upstream behaviour, the difference being that a callback is
    still sent to sd::start() from routing_manager_impl, rather than
    executing that code directly in routing_manager_impl.
    
    Notes:
    - mutexes
      - sd_impl::endpoint_ is now mutex protected
      - rm_impl::pending_sd_offers_mutex_ is a recursive mutex, as now it
        can be called in its own thread and the new thread in SD
    - There is no timeout on the waitfor.  The original implementation had a
      configurable timeout, however because timing out left us in an error
      state anyways, this timeout was removed (raised to
      numeric_limits<int>::max() = ~45 days, give or take.)
    kheaactua committed May 28, 2024
    Configuration menu
    Copy the full SHA
    70c1670 View commit details
    Browse the repository at this point in the history