diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-12-29 12:59:01 -0800 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-12-29 12:59:01 -0800 |
commit | 31ee6b4daa1da9cd02e75b27924b2729345e999d (patch) | |
tree | c00cc159a7e330763ae72f307dab3664d0f3d5b9 /rainbows.gemspec | |
parent | d5375f5c24abfae0173007f47bc9e83139d556b5 (diff) | |
download | rainbows-31ee6b4daa1da9cd02e75b27924b2729345e999d.tar.gz |
Under all MRI 1.8, a blocking Socket#accept Ruby method (needs to[1]) translate to a non-blocking accept(2) system call that may wake up threads/processes unnecessarily. Unfortunately, we failed to trap and ignore EAGAIN in those cases. This issue did not affect Ruby 1.9 running under modern Linux kernels where a _blocking_ accept(2) system call is not (easily, at least) susceptible to spurious wakeups. Non-Linux systems running Ruby 1.9 may be affected. [1] - using a blocking accept(2) on a shared socket with green threads is dangerous, as noted in commit ee7fe220ccbc991e1e7cbe982caf48e3303274c7 (and commit 451ca6997b4f298b436605b7f0af75f369320425)
Diffstat (limited to 'rainbows.gemspec')
0 files changed, 0 insertions, 0 deletions