Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | C++ migration: add a C++ implementation of `FSTExponentialBackoff` (#1465) | Konstantin Varlamov | 2018-07-10 |
| | | | | | | | | | | | This is a pretty close port of `FSTExponentialBackoff`. The changes are pretty minor: * delay is calculated using <chrono> duration types, not plain numbers, which should be a little more type-safe; * split a piece of code into a ClampDelay function, because it's reasonably close to std::clamp; * rephrased the class-level comment to make it clearer that the first attempt always has delay = 0; * added simple tests (other platforms don't have tests for this). Also make sure that canceling a DelayedOperation is always valid. | ||
* | Firestore C++: quick fix for flaky tests in AsyncQueue and Executor (#1245) | Konstantin Varlamov | 2018-05-10 |
| | |||
* | Firestore C++: add missing tests for Executor (#1247) | Konstantin Varlamov | 2018-05-10 |
| | |||
* | C++ migration: add AsyncQueue, the C++ version of FSTDispatchQueue (#1176) | Konstantin Varlamov | 2018-05-07 |
AsyncQueue is a queue that executes given operations asynchronously, enforcing that only a single operation is executing at any given time, and that in-progress operations don't spawn more operations. The actual execution is delegated to a platform-specific executor. Executor is an interface for a FIFO queue that executes given operations serially. Two implementations of Executor, one using libdispatch and the other using C++11 standard library, are provided. AsyncQueue is not used anywhere in the code base at this point. |