Feature #12019
openBetter low-level support for writing concurrent libraries
Description
Nowadays, almost every processor has more than one core. Therefore it becomes more and more important for languages to have good support of concurrent and/or parallel computation. Currently Ruby supports concurrency mainly through high-level classes: Thread
, Queue
, Mutex
, Monitor
, ConditionVariable
.
This work is not colliding with plans for Ruby 3 (to provide an easy-to-use and safe concurrent abstraction to Ruby users). Following proposals suggest several key low-level Ruby extensions which will allow those interested in these topics to create fast concurrency abstractions (gems) for Ruby community, providing more choices and complementing the effort of Ruby 3. The proposed APIs are not expected to be used for every day programming but rather by concurrency enthusiast.
This issue is intended to serve as an aggregator for other various proposals described in following issues.
Updated by pitr.ch (Petr Chalupa) almost 9 years ago
I'll be adding or linking existing proposals gradually:
- Documenting Ruby memory model
- Volatile instance variables
- Atomic instance variables
- Final instance variables
- Let
Module.attr.*
methods return symbols of the defined methods - Relaxing variable volatility/atomicity
I've tried to describe the intentions for Ruby 3 as best as I could, please correct the statement if it's inaccurate.
Updated by Eregon (Benoit Daloze) almost 9 years ago
- Related to Feature #12020: Documenting Ruby memory model added
Updated by Eregon (Benoit Daloze) almost 9 years ago
- Related to Feature #11539: Support explicit declaration of volatile instance variables added
Updated by Eregon (Benoit Daloze) almost 9 years ago
- Related to Feature #8259: Atomic attributes accessors added
Updated by Eregon (Benoit Daloze) almost 9 years ago
- Related to Feature #12021: Final instance variables added
Updated by Eregon (Benoit Daloze) almost 9 years ago
- Related to Feature #11541: Let attr_accessor, _reader & _writer return symbols of the defined methods added
Updated by ferdinandrosario@gmail.com (ferdinand rosario) almost 9 years ago
- Assignee changed from pitr.ch (Petr Chalupa) to matz (Yukihiro Matsumoto)
Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
- Project changed from 14 to Ruby master
Updated by hsbt (Hiroshi SHIBATA) 7 months ago
- Status changed from Open to Assigned