aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Put benchmarks in their own fileMatt Joiner2019-10-232-122/+127
|
* Make the santa example a cmdMatt Joiner2019-10-231-2/+2
|
* Merge pull request #2 from anacrolix/go.modLuke Champine2019-10-221-0/+3
|\ | | | | Add go.mod file
| * Add go.mod fileMatt Joiner2019-10-221-0/+3
|/
* broadcast in AtomicSetlukechampine2016-09-302-1/+24
|
* expand Select examplelukechampine2016-04-051-4/+20
|
* expand Pointers sectionlukechampine2016-04-041-1/+32
|
* add Go Report Card badgelukechampine2016-04-041-1/+1
|
* better pointer documentationlukechampine2016-04-032-0/+38
|