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

Another huge atomic.cpp commit #9209

Merged
merged 6 commits into from
Nov 6, 2020
Merged

Another huge atomic.cpp commit #9209

merged 6 commits into from
Nov 6, 2020

Commits on Nov 5, 2020

  1. Configuration menu
    Copy the full SHA
    7d56069 View commit details
    Browse the repository at this point in the history
  2. Improve cond_var notifiers

    But nobody uses it anyway, so clean up includes.
    Nekotekina committed Nov 5, 2020
    Configuration menu
    Copy the full SHA
    34fa010 View commit details
    Browse the repository at this point in the history
  3. Improve shared_mutex

    Wait/notify only on c_sig, should reduce spurious wakeup noise.
    Nekotekina committed Nov 5, 2020
    Configuration menu
    Copy the full SHA
    cc07e53 View commit details
    Browse the repository at this point in the history
  4. atomic.cpp: various cleanups and fixes

    Add pointer comparison to notifiers (to prevent spurious wakeups).
    Fix a bug with a possible double notification in raw_notify().
    Fix a bug with incorrect allocatin bit slots for cond_handle.
    Add a semaphore counter to track max allowed number of threads.
    Use #define for some constants to STRINGIZE them in errors.
    Add some error messages when certain limits are reached.
    Fix a bug with a wrong check simply throwing std::abort.
    Use "special" notify_all patch with batch processing for every arch.
    Fix Win7 bug who no one probably noticed.
    Nekotekina committed Nov 5, 2020
    Configuration menu
    Copy the full SHA
    1bb7c74 View commit details
    Browse the repository at this point in the history
  5. atomic.cpp: more improvements

    Add ref counters for internal semaphores for concurrent notifying.
    Lack of them could result in loss of notification.
    Nekotekina committed Nov 5, 2020
    Configuration menu
    Copy the full SHA
    9fb8d44 View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2020

  1. atomic.cpp: remove load() from notify functions

    Only compare masks for overlap for second overload (with mask provided).
    Explicit "new value" can be provided in new 3-arg overloads.
    Also rename atomic_storage_futex -> atomic_wait_engine.
    Nekotekina committed Nov 6, 2020
    Configuration menu
    Copy the full SHA
    557f0c5 View commit details
    Browse the repository at this point in the history