aboutsummaryrefslogtreecommitdiffstats
path: root/ext/monitor
Commit message (Collapse)AuthorAgeFilesLines
* Update dependenciesNobuyoshi Nakada2021-11-211-13/+12
|
* Distinguish signal and timeout [Bug #16608]Nobuyoshi Nakada2021-07-251-2/+2
|
* Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFEBenoit Daloze2021-05-041-1/+1
| | | | * See [Feature #17752]
* Fix Monitor to lock per Fiber, like Mutex [Bug #17827]Benoit Daloze2021-04-271-5/+5
|
* dependency updates卜部昌平2021-04-131-1/+0
|
* Fix a typo [ci skip]Kazuhiro NISHIYAMA2021-01-051-1/+1
|
* ext/monitor is ractor-safeKoichi Sasada2020-12-201-0/+4
|
* sed -i '/rmodule.h/d'卜部昌平2020-08-271-1/+0
|
* sed -i '/r_cast.h/d'卜部昌平2020-08-271-1/+0
|
* sed -i '\,2/extern.h,d'卜部昌平2020-08-271-1/+0
|
* Use https instead of httpKazuhiro NISHIYAMA2020-07-281-1/+1
|
* Fix MonitorMixin when the super's initialize has kwargsMasataka Pocke Kuwabara2020-07-171-1/+1
|
* sed -i 's|ruby/impl|ruby/internal|'卜部昌平2020-05-111-140/+140
| | | | To fix build failures.
* sed -i s|ruby/3|ruby/impl|g卜部昌平2020-05-111-140/+140
| | | | This shall fix compile errors.
* Merge pull request #2991 from shyouhei/ruby.h卜部昌平2020-04-081-0/+152
| | | Split ruby.h
* Fix a typo [ci skip]Kazuhiro NISHIYAMA2020-04-031-1/+1
|
* new_cond before mon_initializeKoichi Sasada2019-12-041-2/+10
| | | | | | | MonitorMixin#new_cond can be called before mon_initialize, so we need to initialize `@monitor` before it. https://bugs.ruby-lang.org/issues/16255#note-4
* Fix documentation of `MonitorMixin#new_cond` [ci skip] (#2707)y-yagi2019-11-271-1/+1
| | | | Since https://github.com/ruby/ruby/pull/2576, `new_cond` uses the Monitor object, not the receiver.
* Monitor#exit: check monitor ownership.Koichi Sasada2019-11-121-10/+15
| | | | | Monitor#exit should be called by only onwer Thread. However, there is not check for it.
* Native MonitorMixin::ConditionVariable#waitKoichi Sasada2019-10-202-22/+43
| | | | | MonitorMixin::ConditionVariable#wait can be interrupted just after Monitor#exit_for_cond. So implementation in C.
* delegate synchronize methodKoichi Sasada2019-10-201-6/+1
| | | | | | | | Delegate MonitorMixin#synchronize body to Monitor#synchronize. It makes guarantee interrupt safe (because Monitor#synchronize is written in C). I thought Ruby implementation is also safe, but I got stuck failure <http://ci.rvm.jp/results/trunk_test@P895/2327639> so that I introduce this fix to guarantee interrupt safe.
* make monitor.so for performance. (#2576)Koichi Sasada2019-10-204-0/+491
Recent monitor.rb has performance problem because of interrupt handlers. 'Monitor#synchronize' is frequently used primitive so the performance of this method is important. This patch rewrite 'monitor.rb' with 'monitor.so' (C-extension) and make it faster. See [Feature #16255] for details. Monitor class objects are normal object which include MonitorMixin. This patch introduce a Monitor class which is implemented on C and MonitorMixin uses Monitor object as re-entrant (recursive) Mutex. This technique improve performance because we don't need to care atomicity and we don't need accesses to instance variables any more on Monitor class.