Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-40908

Alter stdx::condition_variable::_runWithNotifyable to avoid allocations

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.0-rc1, 4.3.1
    • Component/s: Internal Code
    • Labels:
      None

      Description

      condition_variable::_runWithNotifyable allocates a linked list member for the notification list per invocation. It also does this under both the condvar mutex as well as the mutex for the predicate waiter.

      Two things need to happen for this:

      1. notifyables need to either own a std::list<Notifyable*> or be intrusively linked listed
      2. NotInterruptible needs to not be a global (making it a thread local would do)

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: