| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | use generic atomic | Chris Wendt | 2022-06-08 | 5 | -7/+15 |
| | | |||||
| * | go mod tidy | Chris Wendt | 2022-06-07 | 2 | -20/+7 |
| | | |||||
| * | go mod edit -go=1.18 | Chris Wendt | 2022-06-07 | 1 | -1/+1 |
| | | |||||
| * | Create package-level example doc test from README | Matt Joiner | 2021-08-24 | 2 | -76/+83 |
| | | | | | This should synchronize the examples more with the actual API by actually running them. | ||||
| * | Update reference badge | Matt Joiner | 2021-08-24 | 1 | -1/+2 |
| | | |||||
| * | Remove retry profiles on Tx recycle | Matt Joiner | 2021-03-11 | 1 | -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 Add | Matt Joiner | 2021-03-11 | 1 | -1/+1 |
| | | |||||
| * | Add AtomicModify | Matt Joiner | 2021-03-11 | 1 | -0/+13 |
| | | |||||
| * | Only wake Tx if they're still reading a modified value | Matt Joiner | 2020-10-02 | 3 | -3/+9 |
| | | |||||
| * | Use builtin eq var in rate and stmutil | Matt Joiner | 2020-10-02 | 2 | -2/+2 |
| | | | | | In particular, in the rate limiter this gives a massive performance increase. | ||||
| * | Add retry profiling | Matt Joiner | 2020-10-02 | 3 | -18/+42 |
| | | |||||
| * | Add benchmark utils | Matt Joiner | 2020-10-01 | 8 | -0/+117 |
| | | |||||
| * | New Tx must have completed=false | Matt Joiner | 2020-10-01 | 2 | -1/+2 |
| | | | | | This uncovers a race condition where new Tx are already marked completed. | ||||
| * | Tidy up newTx usage and recycle from WouldBlock | Matt Joiner | 2020-10-01 | 1 | -2/+7 |
| | | |||||
| * | Wake watchers until the var changes again | Matt Joiner | 2020-09-30 | 4 | -19/+30 |
| | | |||||
| * | Don't sleep and only wake watchers if the variable value has changed | Matt Joiner | 2020-09-30 | 2 | -3/+10 |
| | | |||||
| * | Sleep by default again, and don't bother sleeping for less than 100 microseconds | Matt Joiner | 2020-09-23 | 1 | -3/+3 |
| | | |||||
| * | Copy circle CI config from anacrolix/dht | Matt Joiner | 2020-09-10 | 1 | -21/+49 |
| | | |||||
| * | Document that Operation return value isn't in the examples | Matt Joiner | 2020-09-10 | 1 | -0/+3 |
| | | |||||
| * | Move some benchmarks to be external tests | Matt Joiner | 2020-09-10 | 2 | -86/+152 |
| | | |||||
| * | Add custom VarValue and const for sleep backoff | Matt Joiner | 2020-09-10 | 6 | -33/+101 |
| | | |||||
| * | Add exponentially longer sleeping between transaction attempts | Matt Joiner | 2020-09-10 | 2 | -8/+25 |
| | | |||||
| * | Add .circleci/config.yml | Matt Joiner | 2020-09-10 | 1 | -0/+26 |
| | | |||||
| * | Update README.md | Matt Joiner | 2020-09-10 | 1 | -5/+2 |
| | | |||||
| * | Reduce more allocations | Matt Joiner | 2020-08-28 | 2 | -12/+27 |
| | | |||||
| * | Dedicated tx locks type | Matt Joiner | 2020-08-28 | 1 | -10/+33 |
| | | | | | Reduces allocations | ||||
| * | Add thundering herd tests | Matt Joiner | 2020-08-28 | 1 | -0/+86 |
| | | |||||
| * | Count wakes for unchanged var version | Matt Joiner | 2020-08-28 | 1 | -0/+5 |
| | | |||||
| * | Panic when a transaction blocks after reading nothing | Matt Joiner | 2020-04-15 | 4 | -11/+56 |
| | | |||||
| * | Rework ContextDoneVar to not leak done Contexts | Matt Joiner | 2019-11-07 | 1 | -1/+7 |
| | | |||||
| * | Throw away writes in failed Select operations | Matt Joiner | 2019-11-07 | 1 | -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.String | Matt Joiner | 2019-11-07 | 1 | -0/+5 |
| | | |||||
| * | Make returns explicit | Matt Joiner | 2019-11-06 | 7 | -121/+98 |
| | | |||||
| * | Add WouldBlock | Matt Joiner | 2019-11-06 | 1 | -1/+19 |
| | | |||||
| * | Cache ContextDoneVars | Matt Joiner | 2019-11-05 | 2 | -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 profiling | Matt Joiner | 2019-11-05 | 1 | -0/+13 |
| | | |||||
| * | Add stmutil.List | Matt Joiner | 2019-11-05 | 1 | -0/+2 |
| | | |||||
| * | No need to reset Tx before putting it in the Pool | Matt Joiner | 2019-11-05 | 1 | -1/+0 |
| | | |||||
| * | Optimize AtomicSet | Matt Joiner | 2019-11-05 | 3 | -10/+14 |
| | | |||||
| * | Add expvars | Matt Joiner | 2019-11-05 | 4 | -1/+14 |
| | | |||||
| * | Update go.mod | Matt Joiner | 2019-11-04 | 2 | -0/+3 |
| | | |||||
| * | Add parallel PingPong benchmark | Matt Joiner | 2019-11-04 | 2 | -1/+27 |
| | | | | | This should help demonstrate any speed-up from removing global synchronization primitives. | ||||
| * | Fix TestDecrement | Matt Joiner | 2019-11-04 | 1 | -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 state | Matt Joiner | 2019-11-04 | 1 | -14/+7 |
| | | |||||
| * | Reduce transaction locking on Tx.wait | Matt Joiner | 2019-11-04 | 1 | -2/+2 |
| | | |||||
| * | Remove global lock | Matt Joiner | 2019-11-04 | 4 | -19/+66 |
| | | |||||
| * | Use atomic pointers for Var data | Matt Joiner | 2019-11-04 | 3 | -23/+31 |
| | | |||||
| * | Transfer project stewardship to anacrolix | Matt Joiner | 2019-11-03 | 5 | -7/+11 |
| | | | | | See https://github.com/lukechampine/stm/issues/3#issuecomment-549087541. | ||||
| * | Add stm friendly rate limiter | Matt Joiner | 2019-11-02 | 2 | -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 done | Matt Joiner | 2019-11-02 | 1 | -0/+3 |
| | | | | | This prevents needless races, such as in some of the rate limiting tests. | ||||
