diff options
| author | Koichi Sasada <ko1@atdot.net> | 2024-07-10 00:55:04 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-09 08:55:04 -0700 |
| commit | 3427a1679a8ca30465c684ac28449f495bff8a22 (patch) | |
| tree | 04ce0128eb05fe000ceb9b612cd7f2ca45a016e7 /include/ruby | |
| parent | be1089c8ec5ba40e09b1553e36b3174bf4014d9d (diff) | |
retry on cancelling of `getaddrinfo` (#11131)
When the registerred unblock function is called, it should retry
the cancelled blocking function if possible after checkints.
For example, `SIGCHLD` can cancel this method, but it should not
raise any exception if there is no trap handlers.
The following is repro-code:
```ruby
require 'socket'
PN = 10_000
1000000.times{
p _1
PN.times{
fork{
sleep rand(0.3)
}
}
i = 0
while i<PN
cpid = Process.wait -1, Process::WNOHANG
if cpid
# p [i, cpid]
i += 1
end
begin
TCPServer.new(nil, 0).close
rescue
p $!
exit!
end
end
}
```
Diffstat (limited to 'include/ruby')
0 files changed, 0 insertions, 0 deletions
