summaryrefslogtreecommitdiff
path: root/src/mongo/stdx
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-25497 Fix sharded query path to handle shutdown of the mongos processRuoxin Xu2020-10-151-0/+1
|
* SERVER-40147 Upgrade third-party variant from 1.3.0 to 1.4.0Ryan Egesdahl2020-06-261-1/+1
| | | | | | We use a third-party implementation of std::variant on platforms that do not include it. This change simply upgrades the third-party source to the most recent release and then fixes the way we actually depend on it.
* SERVER-48597 Fix stack trace unit tests with TSANRyan Egesdahl2020-06-111-2/+7
| | | | | | | | | | | | | | Stack trace unit tests were failing with TSAN due to the mechanisms and assumptions of the tests. In one case, we simulate a real failure and do some thread necromancy to recover from it, which was causing TSAN to segfault immediately. In another two, we rely on a feature that makes some assumptions about which threads are running and what signals they can receive, which TSAN's internal threads violate. These tests and features are disabled with TSAN for now so we can run further tests with TSAN. Separately, one of the tests was failing with a complaint from TSAN that errno was being stomped on. That is also addressed.
* SERVER-27896 Add support for enforcing single-thread contextAmirsaman Memaripour2020-03-022-5/+8
|
* SERVER-45301 Not all expected aliases are present in the ninja generator outputMathew Robinson2020-02-131-17/+23
|
* SERVER-44270 Compilation fails with --libc++ and clang 8.0+Mark Benvenuto2019-10-301-1/+3
|
* SERVER-44274 zero-initialize stack_t structureBilly Donahue2019-10-281-2/+2
|
* SERVER-15902 sigaltstack for workers and stdx::thread.Billy Donahue2019-10-253-0/+380
|
* SERVER-42165 Replace uses of stdx::mutex with mongo::MutexBen Caimano2019-09-172-3/+3
|
* SERVER-43031 fix stdx::type_identity_tBilly Donahue2019-08-261-1/+1
|
* SERVER-25240 Make `stdx::set_terminate` which works on windows.ADAM David Alan Martin2019-08-238-21/+514
| | | | | The `stdx::set_terminate` primitive, on windows, wraps the per-thread terminate handler and emulates a single global terminate handler.
* SERVER-42080 `stdx::unordered_map<...>::at` must throw.ADAM David Alan Martin2019-08-152-0/+51
| | | | Added a test to check that this happens.
* SERVER-41961 Remove the `NOINLINE_DECL` and replace with ↵ADAM David Alan Martin2019-08-151-1/+0
| | | | | | `MONGO_COMPILER_NOINLINE` Also removed the `PACKED_DECL`, since it isn't used.
* SERVER-41772 Apply clang-format 7.0.1 to the codebaseclang-format-7.0.12019-07-273-11/+11
|
* SERVER-41358 Created condition_variable polyfillShaileja Jain2019-07-241-14/+13
|
* SERVER-39340 Remove `stdx/list.h`ADAM David Alan Martin2019-06-101-40/+0
|
* SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin2019-06-101-58/+0
|
* SERVER-39338 Remove `stdx/functional.h`ADAM David Alan Martin2019-06-101-42/+0
|
* SERVER-40908 !allocs in cv::_runWithNotifyableJason Carey2019-06-051-30/+54
| | | | | | | | | | | 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: * notifyables need to own a std::list<Notifyable*> * NotInterruptible needs to be a thread local
* SERVER-41414: Have stdx::variant unconditionally implemented by mparkJacob Evans2019-05-311-41/+3
|
* SERVER-39960 Simplify opCtx::markKilledJason Carey2019-03-111-0/+13
| | | | | | | | | | | Operation context currently relies on an elaborate dance between the client lock, _waitMutex, _waitCV and _numKillers to allow markKilled to tap the condvar an opctx is waiting on. After the introduction of batons on all opctx's, this is no longer necessary (as batons have their own support for being woken, while waiting on a condvar). Removing the special killing code will simplify opctx, and remove a lot of extra book keeping.
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-1315-15/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-36644 remove AtomicWord typedefsBilly Donahue2019-01-071-1/+1
|
* SERVER-38249 Implement stdx unordered_map and unordered_set as absl node ↵Henrik Edin2018-12-203-24/+76
| | | | | | | | | | hash map/set. Remove stdx::unordered_multimap and multiset. Custom hashers to stdx::unordered_map are not trusted by default, we will rehash the produced hash with absl again to ensure we have a good hash function.
* SERVER-38520 Fix std::variant feature detectionHenrik Edin2018-12-111-4/+10
|
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-2215-120/+150
|
* SERVER-35679 General Interruption FacilityJason Carey2018-09-173-1/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-36900 Add a `unique_function` utility.ADAM David Alan Martin2018-09-061-6/+66
| | | | | | | The `mongo::unique_function` object is a move-only function object which is useful for capturing move-only lambdas (such as those with `std::unique_ptr` objects) into type-erased function objects that resemble `std::function`.
* SERVER-35818 Add stdx::variantJonathan Reams2018-07-181-0/+90
|
* SERVER-35170 Add misc fixes to enable building in -std=c++17 modeAndrew Morrow2018-05-231-1/+1
|
* SERVER-32070 remove stdx::bind (final patch)Billy Donahue2018-01-161-5/+3
|
* SERVER-30135 Added a synchronous executor to make the code path between the ↵Henrik Edin2017-09-221-0/+1
| | | | two modes similar while still allowing customization in the execution. Should fix some perf regressions that came with unifying the service state machine.
* SERVER-29712 Add a polyfill for std::hardware_constructive_interference_sizeAndrew Morrow2017-06-201-0/+58
|
* SERVER-26540 Detach from boost::chronoAndrew Morrow2017-06-161-7/+2
|
* SERVER-28643 Do not rely on __cplusplus value for inclusion of void_tsamantharitter2017-04-051-1/+1
|
* SERVER-28574 Add C++17's `as_const` to stdx.ADAM David Alan Martin2017-04-031-0/+54
|
* SERVER-28551 Implementation of `void_t` in stdx.ADAM David Alan Martin2017-03-301-0/+26
| | | | | | There are a lot of template metaprograms and `std::enable_if` expressions which we'd like to use in our codebase. This import of a C++17 future feature will help make them easier to write.
* SERVER-26698 switch all compiles to C++14Matt Cotter2016-12-151-26/+0
| | | | Enjoy the C++14! 😀 ❤️ thank you!
* fix lintJonathan Reams2016-09-161-8/+9
|
* SERVER-26002 Make sure javascript sleep isn't interruptedJonathan Reams2016-09-161-1/+33
|
* SERVER-25865 stdx::unordered_multimap and stdx::unordered_multisetDavid Storch2016-09-082-4/+8
|
* SERVER-25865 stdx::unordered_map and stdx::unordered_setDavid Storch2016-09-082-0/+94
| | | | | On Windows, these are aliases for boost containers. On other platforms they are aliases for std containers.
* SERVER-23902 non-throwing stdx::threadJason Carey2016-06-031-1/+72
| | | | | | | | | Instead of aliasing std::thread for stdx::thread, we wrap std::thread in an api compatible version which std::terminates if std::thread's constructor throws. Given that we don't have a good strategy for re-trying thread creation failures, this improves our stack traces, as we can see which part of the code failed to create a thread, rather than getting a generic error at the top of the stack.
* SERVER-23548 Remove VS2013 workaroundsMark Benvenuto2016-05-031-11/+3
|
* SERVER-23570 Make SecureAllocator a real allocatorJason Carey2016-04-191-0/+26
| | | | Also adds SecureT, a wrapper proxy for newing objects on the secure heap.
* SERVER-22686 Add C++14 enable_if_t to stdxsamantharitter2016-03-101-0/+56
|
* SERVER-19769 Use std::function to back stdx::function on windowsAndrew Morrow2015-08-311-40/+0
| | | | | | While std::function has some broken edge cases on VS2013, so does boost::function in boost 1.56. Rather than upgrade boost, use MSVC's std::function and fix up the few places that need adjustment.
* SERVER-19846 Ban uses of std::timed_mutexAndrew Morrow2015-08-241-2/+7
|
* SERVER-19313 Remove some obsoleted usages of boostAndrew Morrow2015-07-091-0/+5
|
* SERVER-19099 Use std:: to back stdx polyfillsAndrew Morrow2015-07-065-27/+25
|