aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* Add stmutil containers and ContextDoneVarMatt Joiner2019-11-014-0/+354
|
* Optimize a bunch of stuffMatt Joiner2019-10-313-13/+42
|
* Merge branch 'master' into var-condsMatt Joiner2019-10-313-22/+42
|\ | | | | | | | | | | | | | | | | * master: Add Tx.Return and a return value from Atomically Panic when trying to set a nil Var # Conflicts: # funcs.go
| * Add Tx.Return and a return value from AtomicallyMatt Joiner2019-10-313-22/+42
| |
| * Panic when trying to set a nil VarMatt Joiner2019-10-291-0/+3
| | | | | | | | | | | | This wasn't caught, and would cause errors later that weren't easy to trace. (cherry picked from commit 7b273432145605d367557e60ab51b9eb7dbbffeb)
* | Panic when trying to set a nil VarMatt Joiner2019-10-251-0/+3
| | | | | | | | This wasn't caught, and would cause errors later that weren't easy to trace.
* | Get rid of globalCondMatt Joiner2019-10-233-7/+3
| |
* | Register transaction condition with each read Var onlyMatt Joiner2019-10-233-13/+27
|/
* Improve comment on Tx.verifyMatt Joiner2019-10-231-3/+1
|
* Add PingPong test and benchmarkMatt Joiner2019-10-232-0/+46
|
* Break up the stm.go fileMatt Joiner2019-10-237-269/+274
|