aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* use generic atomicChris Wendt2022-06-085-7/+15
|
* go mod tidyChris Wendt2022-06-072-20/+7
|
* go mod edit -go=1.18Chris Wendt2022-06-071-1/+1
|
* Create package-level example doc test from READMEMatt Joiner2021-08-242-76/+83
| | | | This should synchronize the examples more with the actual API by actually running them.
* Update reference badgeMatt Joiner2021-08-241-1/+2
|
* Remove retry profiles on Tx recycleMatt Joiner2021-03-111-0/+3
| | | | This may fix a memory leak where the *Tx in retry profile keys holds on to old Tx and their writes.
* skip the retry profile AddMatt Joiner2021-03-111-1/+1
|
* Add AtomicModifyMatt Joiner2021-03-111-0/+13
|
* Only wake Tx if they're still reading a modified valueMatt Joiner2020-10-023-3/+9
|
* Use builtin eq var in rate and stmutilMatt Joiner2020-10-022-2/+2
| | | | In particular, in the rate limiter this gives a massive performance increase.
* Add retry profilingMatt Joiner2020-10-023-18/+42
|
* Add benchmark utilsMatt Joiner2020-10-018-0/+117
|
* New Tx must have completed=falseMatt Joiner2020-10-012-1/+2
| | | | This uncovers a race condition where new Tx are already marked completed.
* Tidy up newTx usage and recycle from WouldBlockMatt Joiner2020-10-011-2/+7
|
* Wake watchers until the var changes againMatt Joiner2020-09-304-19/+30
|
* Don't sleep and only wake watchers if the variable value has changedMatt Joiner2020-09-302-3/+10
|
* Sleep by default again, and don't bother sleeping for less than 100 microsecondsMatt Joiner2020-09-231-3/+3
|
* Copy circle CI config from anacrolix/dhtMatt Joiner2020-09-101-21/+49
|
* Document that Operation return value isn't in the examplesMatt Joiner2020-09-101-0/+3
|
* Move some benchmarks to be external testsMatt Joiner2020-09-102-86/+152
|
* Add custom VarValue and const for sleep backoffMatt Joiner2020-09-106-33/+101
|
* Add exponentially longer sleeping between transaction attemptsMatt Joiner2020-09-102-8/+25
|
* Add .circleci/config.ymlMatt Joiner2020-09-101-0/+26
|
* Update README.mdMatt Joiner2020-09-101-5/+2
|
* Reduce more allocationsMatt Joiner2020-08-282-12/+27
|
* Dedicated tx locks typeMatt Joiner2020-08-281-10/+33
| | | | Reduces allocations
* Add thundering herd testsMatt Joiner2020-08-281-0/+86
|
* Count wakes for unchanged var versionMatt Joiner2020-08-281-0/+5
|
* Panic when a transaction blocks after reading nothingMatt Joiner2020-04-154-11/+56
|
* Rework ContextDoneVar to not leak done ContextsMatt Joiner2019-11-071-1/+7
|
* Throw away writes in failed Select operationsMatt Joiner2019-11-071-0/+6
| | | | Note there's no test for this yet, afaik, and clearly it's not optimized. It also wasn't the cause of the issue I thought i was seeing, but is more correct.
* Add Tx.StringMatt Joiner2019-11-071-0/+5
|
* Make returns explicitMatt Joiner2019-11-067-121/+98
|
* Add WouldBlockMatt Joiner2019-11-061-1/+19
|
* Cache ContextDoneVarsMatt Joiner2019-11-052-5/+38
| | | | Note that nothing currently flushes them. Could probably flush them when they're done, and the early return will take care of the rest.
* Add failed commits profilingMatt Joiner2019-11-051-0/+13
|
* Add stmutil.ListMatt Joiner2019-11-051-0/+2
|
* No need to reset Tx before putting it in the PoolMatt Joiner2019-11-051-1/+0
|
* Optimize AtomicSetMatt Joiner2019-11-053-10/+14
|
* Add expvarsMatt Joiner2019-11-054-1/+14
|
* Update go.modMatt Joiner2019-11-042-0/+3
|
* Add parallel PingPong benchmarkMatt Joiner2019-11-042-1/+27
| | | | This should help demonstrate any speed-up from removing global synchronization primitives.
* Fix TestDecrementMatt Joiner2019-11-041-6/+4
| | | | With only a single cpu it would spin endlessly without a synchronization point (since changing AtomicGet to use atomics).
* Use atomic.Value for Var stateMatt Joiner2019-11-041-14/+7
|
* Reduce transaction locking on Tx.waitMatt Joiner2019-11-041-2/+2
|
* Remove global lockMatt Joiner2019-11-044-19/+66
|
* Use atomic pointers for Var dataMatt Joiner2019-11-043-23/+31
|
* Transfer project stewardship to anacrolixMatt Joiner2019-11-035-7/+11
| | | | See https://github.com/lukechampine/stm/issues/3#issuecomment-549087541.
* Add stm friendly rate limiterMatt Joiner2019-11-022-0/+608
| | | | The tests are from golang.org/x/time/rate, and the limiter tries to have a similar API.
* stmutil.ContextDoneVar: Return true Var if the context is already doneMatt Joiner2019-11-021-0/+3
| | | | This prevents needless races, such as in some of the rate limiting tests.