From: "luke-gru (Luke Gruber) via ruby-core" <ruby-core@...>
Date: 2024-04-26T15:59:13+00:00
Subject: [ruby-core:117728] [Ruby master Bug#20459] Ractor.select() deadlock?

Issue #20459 has been updated by luke-gru (Luke Gruber).


I just took a look at this and it's related to this ticket: https://redmine.ruby-lang.org/issues/20168. The linked pull request that fixes that issue also fixes this one.

----------------------------------------
Bug #20459: Ractor.select() deadlock?
https://bugs.ruby-lang.org/issues/20459#change-108135

* Author: esad (Esad Hajdarevic)
* Status: Open
* ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin20]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
When I run this script


```
echo = Ractor.new { Ractor.receive }
Thread.new { puts Ractor.select(echo).inspect }
sleep 0.1
echo.send "test"
```

the script never terminates. If I change thread body to

```
Thread.new { puts echo.take.inspect }
```

or introduce a small delay before #select like:

```
Thread.new { sleep 1; puts Ractor.select(echo).inspect }
```

then it works/terminates.




-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/