Bug #17482
closedRactor.receive doesnt accept Ctrl+C under some condition
Description
When I run this script, Ctrl+C doesn't work.
Waiting forever on #4 is fine, but I think Ctrl+C should work.
r = Ractor.new() {
# sleep 1 #1
File.open(__FILE__){ } #2
}
# sleep 1 #3
p Ractor.receive #4
When I comment out #2, Ctrl+C works.
When I comment in #1 and/or #3, Ctrl+C works.
In my environment, it's reproducable in 100%.
My environment is:
WSL2 ubuntu 5 4.19.128-microsoft-standard #1 i5-10400 6core
Updated by ko1 (Koichi Sasada) almost 4 years ago
- Status changed from Open to Assigned
- Assignee set to ko1 (Koichi Sasada)
Thank you for the report, I could reproduce it.
Updated by ko1 (Koichi Sasada) almost 4 years ago
- Status changed from Assigned to Closed
Applied in changeset git|6f727853cee41195b67ee5d793c1ac23fe1a6ae0.
only main thread can modify vm->ubf_async_safe
vm->ubf_async_safe is VM global resource and only main thread
can manipulate it.
[Bug #17482]
Updated by ko1 (Koichi Sasada) almost 4 years ago
- Backport changed from 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN to 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: REQUIRED
Updated by ko1 (Koichi Sasada) almost 4 years ago
b2674c1fd725b43adf51af7935c780359d70c2a4 should be backported too.
Updated by naruse (Yui NARUSE) almost 4 years ago
- Backport changed from 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: REQUIRED to 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: DONE
ruby_3_0 9aba46d8d80473594e567dff1652626e7b2a77b0 merged revision(s) 6f727853cee41195b67ee5d793c1ac23fe1a6ae0,b2674c1fd725b43adf51af7935c780359d70c2a4.