| Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/io-wait/commit/1decadc7f9
|
|
|
|
like 68682a5d2b2
https://github.com/ruby/ruby/actions/runs/17417763247/job/49449895757?pr=14433
|
|
https://github.com/ruby/ruby/actions/runs/16969921157/job/48103809963
https://github.com/ruby/ruby/actions/runs/16969655024/job/48102876839
|
|
`cc` is created as `"\C-x"`, it is a String since ruby 1.9.
https://github.com/ruby/io-console/commit/65c9266feb
|
|
https://github.com/ruby/io-console/commit/f8b33f38ae
|
|
https://github.com/ruby/io-console/commit/e0398acad4
|
|
It's something we don't expect and might be coming from somewhere
else.
https://github.com/ruby/io-console/commit/c5e47a900c
|
|
This reverts commit https://github.com/ruby/io-console/commit/f0646b2b6ae3.
https://github.com/ruby/io-console/commit/2e0e01263a
|
|
|
|
It's something we don't expect and might be coming from somewhere
else.
https://github.com/ruby/io-console/commit/f0646b2b6a
|
|
https://github.com/ruby/io-wait/commit/cf84aea70d
|
|
https://github.com/ruby/io-console/commit/7106d05219
|
|
* Added `Ractor::Port`
* `Ractor::Port#receive` (support multi-threads)
* `Rcator::Port#close`
* `Ractor::Port#closed?`
* Added some methods
* `Ractor#join`
* `Ractor#value`
* `Ractor#monitor`
* `Ractor#unmonitor`
* Removed some methods
* `Ractor#take`
* `Ractor.yield`
* Change the spec
* `Racotr.select`
You can wait for multiple sequences of messages with `Ractor::Port`.
```ruby
ports = 3.times.map{ Ractor::Port.new }
ports.map.with_index do |port, ri|
Ractor.new port,ri do |port, ri|
3.times{|i| port << "r#{ri}-#{i}"}
end
end
p ports.each{|port| pp 3.times.map{port.receive}}
```
In this example, we use 3 ports, and 3 Ractors send messages to them respectively.
We can receive a series of messages from each port.
You can use `Ractor#value` to get the last value of a Ractor's block:
```ruby
result = Ractor.new do
heavy_task()
end.value
```
You can wait for the termination of a Ractor with `Ractor#join` like this:
```ruby
Ractor.new do
some_task()
end.join
```
`#value` and `#join` are similar to `Thread#value` and `Thread#join`.
To implement `#join`, `Ractor#monitor` (and `Ractor#unmonitor`) is introduced.
This commit changes `Ractor.select()` method.
It now only accepts ports or Ractors, and returns when a port receives a message or a Ractor terminates.
We removes `Ractor.yield` and `Ractor#take` because:
* `Ractor::Port` supports most of similar use cases in a simpler manner.
* Removing them significantly simplifies the code.
We also change the internal thread scheduler code (thread_pthread.c):
* During barrier synchronization, we keep the `ractor_sched` lock to avoid deadlocks.
This lock is released by `rb_ractor_sched_barrier_end()`
which is called at the end of operations that require the barrier.
* fix potential deadlock issues by checking interrupts just before setting UBF.
https://bugs.ruby-lang.org/issues/21262
Notes:
Merged: https://github.com/ruby/ruby/pull/13445
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13212
|
|
We no longer execute those files with Solaris platforms.
Notes:
Merged: https://github.com/ruby/ruby/pull/13037
|
|
[Bug #20682] Add `sleep 0.1` to stabilize flaky failures on macOS
Notes:
Merged-By: ono-max <onoto1998@gmail.com>
|
|
https://github.com/ruby/io-console/commit/fdad351501
|
|
Ractor requires a shareable class has shareable constants only, but IO
is not shareable unless frozen.
https://github.com/ruby/io-console/commit/65e0ff895c
|
|
https://github.com/ruby/io-console/commit/b1adc15af7
|
|
https://github.com/ruby/io-console/commit/74c78afc24
|
|
https://github.com/ruby/io-console/commit/32583460e1
|
|
https://github.com/ruby/io-console/commit/8b9b5b611a
|
|
This test fails fairly frequently on MinGW:
https://github.com/ruby/ruby/actions/runs/7195712496/job/19598924253#step:11:168
https://github.com/ruby/ruby/actions/runs/7191246799/job/19585627182#step:11:168
and we aren't actively working on stabilizing tests for MinGW.
|
|
https://github.com/ruby/io-console/commit/5f71354332
|
|
https://github.com/ruby/io-console/commit/57f9649df4
|
|
* Remove `require 'io/wait'` as it's part of core now.
* Update ruby specs using version gates.
* Add note about why it's conditional.
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
https://github.com/ruby/io-console/commit/9122c181eb
|
|
https://github.com/ruby/io-console/commit/aa8fc7e947
|
|
The tests looks for the .so file, which doesn't exist when the extension
is statically linked. In that situation it passes -I to ruby with
nothing after it which ate the -rio/console argument.
Notes:
Merged: https://github.com/ruby/ruby/pull/6765
|
|
This test has been unstable, and it seems like we're not interested in
fixing that for MinGW.
https://github.com/ruby/ruby/actions/runs/3073317191/jobs/4965373284
|
|
|
|
|
|
bfc697f1e26f1406c45ec7309ca0d4c0b5ecedd6
|
|
(https://github.com/ruby/io-wait/pull/20)
https://github.com/ruby/io-wait/commit/c5c6abbb5c
|
|
|
|
defined by Ruby. (https://github.com/ruby/io-wait/pull/19)
* Fix return value compatibility with Ruby 2.x.
* Don't add `IO#wait*` methods in Ruby 3.2+.
https://github.com/ruby/io-wait/commit/54c504d089
|
|
|
|
Some tests that use signals frequently fail randomly on FreeBSD 13.
Maybe something around signals has changed in FreeBSD 13.
This change skips them tentatively.
|
|
https://github.com/ruby/io-nonblock/commit/a7bfbfa049
|
|
https://github.com/ruby/io-wait/commit/75543ab1bc
|
|
```
Leaked file descriptor: TestIO_Console#test_console_kw: 10 : #<File:/dev/tty>
```
|
|
|
|
https://github.com/ruby/io-wait/commit/e8e1e99d4c
|
|
https://github.com/ruby/io-wait/commit/1f59f7b02f
|
|
|
|
make test-all in parallel mode seems to hide stdout
|
|
to debug the following failure
http://ci.rvm.jp/results/trunk-test@ruby-sky1/3708240
```
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `===': incompatible encoding regexp match (US-ASCII regexp with UTF-16BE string) (Encoding::CompatibilityError)
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `each'
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `grep'
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `<class:TestIO_Console>'
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:9:in `<top (required)>'
<internal:/tmp/ruby/v3/src/trunk-test/lib/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/tmp/ruby/v3/src/trunk-test/lib/rubygems/core_ext/kernel_require.rb>:85:in `require'
/tmp/ruby/v3/src/trunk-test/tool/lib/test/unit/parallel.rb:122:in `run'
/tmp/ruby/v3/src/trunk-test/tool/lib/test/unit/parallel.rb:211:in `<main>'
running file: /tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb
```
|
|
https://github.com/ruby/io-console/commit/48db3616da
|
|
Fixes https://bugs.ruby-lang.org/issues/17659
https://github.com/ruby/io-wait/commit/ba338b4764
Notes:
Merged: https://github.com/ruby/ruby/pull/4244
|