make log reopens more robust in multithreaded apps
commit7309e4b73e134ee7969cc8150b6ebaa6b8f8cb62
authorEric Wong <normalperson@yhbt.net>
Sat, 28 Aug 2010 05:30:46 +0000 (28 05:30 +0000)
committerEric Wong <normalperson@yhbt.net>
Sat, 28 Aug 2010 06:56:22 +0000 (28 06:56 +0000)
tree0acffed2b26256a43a78c10bc9a96946559a8d9e
parentaa599d00907df159f8b33a62108bfa88f407392e
make log reopens more robust in multithreaded apps

IOError may occur due to race conditions as another thread
may close the file immediately after we call File#closed?
to check.

Errno::EBADF may occur in some applications that close a file
descriptor without notifying Ruby (or if two IO objects refer to
the same descriptor, possibly one of them using IO#for_fd).
(cherry picked from commit 4b23693b9082a84433a9e6c1f358b58420176b27)
lib/unicorn/util.rb