summaryrefslogtreecommitdiff
path: root/src/mongo/util/producer_consumer_queue_test.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-64407 Add ResourceYielder support to ARSJack Mulrow2022-03-111-1/+46
|
* SERVER-59618 add LockerNoopClientObserver and register this ClientObserver ↵Benety Goh2021-09-271-0/+5
| | | | in unit tests with Service Context
* SERVER-49800 fix use-after-move violations in testsBenety Goh2020-08-011-1/+1
|
* SERVER-46514 Allow mirroring maestro to leave GC for the client threadAmirsaman Memaripour2020-04-161-0/+1
|
* SERVER-42967 SERVER-42895 SERVER-44086 Expand DiagnosticInfo hooks in ↵Ben Caimano2019-10-211-1/+1
| | | | | | | | | | | Interruptible and Mutex This commit: - Adds Listener hooks for Interruptible - Expands Listener hooks for Mutex - Updates the DiagnosticInfo and its tests to use the new hooks - Removes stacktracing pieces from DiagnosticInfo and its tests - Removes mongo::ConditionVariable entirely in favor of Interruptible
* SERVER-42165 Replace uses of stdx::mutex with mongo::MutexBen Caimano2019-09-171-12/+12
|
* SERVER-41772 Apply clang-format 7.0.1 to the codebaseclang-format-7.0.12019-07-271-2/+2
|
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-131-1/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-39024 Improve PCQ::popManyJason Carey2019-01-301-34/+37
| | | | | improve the ProduceConsumerQueue's popMany and popManyUpTo to return a deque, rather than writing to an output iterator.
* SERVER-37797 PCQ +multi +pipeJason Carey2018-11-021-365/+667
| | | | | | Add support for MultiProducer + MultiConsumer on our existing PCQ and introduce a Pipe type which holds the interface via shared_ptr ends and closes those ends on destruction.
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-21/+23
|
* SERVER-35679 General Interruption FacilityJason Carey2018-09-171-25/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for a generalized interruptibility facility in the server. This offers a generalized interruptibility facility, trialed in Future<T> and ProducerConsumerQueue<T>. It offers 3 major concepts: Notifyable: A type which can notified off-thread, causing a wake up from some kind of blocking wait Waitable: A type which is Notifyable, and also can perform work while in a ready-to-receive notification state. static methods offer support for running underneath condition_variable::wait's. The chief implementer is the transport layer baton type Interruptible: A type which can wait on condition variables, and offers: - deadlines. This means the type integrates some sort of clock source - interruptibility. This means the type offers a way of noticing that it should no longer run via status or exception Additionally, Interruptible's offer special scoped guards which offer - Exemption from interruption in a region defined by the lifetime of a guard object - Subsidiary deadlines which can trigger recursively, offering specialized timeout and status return support. The series of virtual types allows us to slice the interface between opCtx and future such that opctx can use future and future can use opctx. Additionally, cutting out more functionality allows us to flow a noop interruptibility type which unifies our waiting behind a common api.
* SERVER-34798 Remove ServiceContext subclasses and use new ServiceContext in ↵Andy Schwerin2018-06-221-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | every unit test. This patch does several loosely related and surprisingly hard to separate things. 1.) Make the ServiceContext class final 2.) Create a mechanism, called ConstructorActions, for running methods on ServiceContexts immediately after they're built and immediately before they're destroyed. 3.) Introduce / improve test fixture base classes for tests, giving them fresh ServiceContext instances for each test case. There is one fixture for tests that need a storage engine and another for those that do not. 4.) Make several remaining global variables SC decorations in support of (3) 5.) Replace many MONGO_INITIALIZERS that access getGlobalServiceContext with the new constructor-actions system, which is needed for (3.) 6.) Fix up tests to use the fixtures from (3) and fix tests that silently used different service contexts in together in a technically illegal fashion that now breaks. 7.) Utilize (2) as necessary to simplify initialization of new ServiceContexts, simplifying the fixtures in (3).
* SERVER-33572 Add ProducerConsumerQueue to utilJason Carey2018-03-081-0/+706
Add a bounded, interruptible, thread safe, single producer, multi-consumer queue to the utility directory.