[#115884] Windows Ruby 3.2.2: Non-English character added to Windows Registry String Value — Jay Mav via ruby-core <ruby-core@...>
Hello,
3 messages
2023/12/24
[ruby-core:115883] [Ruby master Bug#20082] Killing fibers across threads: unexpected exception
From:
"rubyFeedback (robert heiler) via ruby-core" <ruby-core@...>
Date:
2023-12-24 00:36:41 UTC
List:
ruby-core #115883
Issue #20082 has been updated by rubyFeedback (robert heiler).
The error message is indeed somewhat peculiar:
"attempt to resume **a resumed fiber** ( **double resume** )"
I am not sure what "double resume" means here. But, even aside
from this, I could not even try to want to explain what "to
resume a resumed fiber" really means. Perhaps something else
was meant here? Or it was meant to convey that the code tried
to resume an already-resumed fiber. Either way it is indeed
peculiar.
I'd even be radical and suggest to get rid of fibers and instead
put everything under Thread, but I guess that is not possible
for various reasons. To me Threads seem easier to understand
than Fibers though.
----------------------------------------
Bug #20082: Killing fibers across threads: unexpected exception
https://bugs.ruby-lang.org/issues/20082#change-105840
* Author: zverok (Victor Shepelev)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
For providing the example in a changelog, I tried to imitate killing fibers belonging to other threads.
Documentation [claims](https://docs.ruby-lang.org/en/master/Fiber.html#method-i-kill)
> Raises FiberError if called on a fiber belonging to another thread.
So, I created this artificial example to check how it works:
```ruby
fibers = []
Thread.new {
f = Fiber.new { (1..).each { sleep(0.1) } }
fibers << f
f.resume
}
sleep(0.1) # to make sure the thread has started
fibers.last.kill
```
The example indeed fails with `FiberError`, but the error message is confusing:
```
in `kill': attempt to resume a resumed fiber (double resume) (FiberError)
```
Is this an expected message for such case? Or am I misunderstanding something?
--
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/