aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/concurrency
Commit message (Collapse)AuthorAgeFilesLines
* Require only necessary concurrent-ruby classes.Jerry D'Antonio2015-11-041-2/+2
|
* Handle thread death during lock acquisitionMatthew Draper2015-07-211-4/+6
| | | | | | Specifically, clean up if the thread is killed while it's blocked awaiting the lock... if we get killed on some other arbitrary line, the result remains quite undefined.
* Adjust expectations around purpose/compatibility optionsMatthew Draper2015-07-211-1/+1
|
* Order of execution is only guaranteed if upgradingMatthew Draper2015-07-211-1/+1
| | | | | If the thread isn't yet holding any form of lock, it has no claim over what may / may not run while it's blocked.
* Fix ShareLock issues.thedarkone2015-07-201-2/+2
|
* We need stricter locking before we can unloadMatthew Draper2015-07-201-27/+29
| | | | | | | | | | | | Specifically, the "loose upgrades" behaviour that allows us to obtain an exclusive right to load things while other requests are in progress (but waiting on the exclusive lock for themselves) prevents us from treating load & unload interchangeably: new things appearing is fine, but they do *not* expect previously-present constants to vanish. We can still use loose upgrades for unloading -- once someone has decided to unload, they don't really care if someone else gets there first -- it just needs to be tracked separately.
* Replaced `ActiveSupport::Concurrency::Latch` with concurrent-ruby.Jerry D'Antonio2015-07-131-16/+8
| | | | | | | | | | The concurrent-ruby gem is a toolset containing many concurrency utilities. Many of these utilities include runtime-specific optimizations when possible. Rather than clutter the Rails codebase with concurrency utilities separate from the core task, such tools can be superseded by similar tools in the more specialized gem. This commit replaces `ActiveSupport::Concurrency::Latch` with `Concurrent::CountDownLatch`, which is functionally equivalent.
* Document ShareLock and the InterlockMatthew Draper2015-07-091-0/+20
|
* Soften the lock requirements when eager_load is disabledMatthew Draper2015-07-091-0/+118
| | | | | We don't need to fully disable concurrent requests: just ensure that loads are performed in isolation.
* added live responses which can be written and read in separate threadsAaron Patterson2012-07-291-0/+27