diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | lib/find.rb | 4 |
2 files changed, 8 insertions, 3 deletions
@@ -1,6 +1,11 @@ +Wed Dec 16 00:53:14 2009 Tanaka Akira <akr@fsij.org> + + * lib/find.rb (Find.find): rescue more exceptions which is possible to + occur by other process change the directory tree. + Tue Dec 15 09:06:33 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> - * lib/find.rb (Find.find): get rid of race condition. + * lib/find.rb (Find.find): get rid of race condition. Mon Dec 14 22:33:21 2009 Tanaka Akira <akr@fsij.org> diff --git a/lib/find.rb b/lib/find.rb index c9fee921f8..591020ea04 100644 --- a/lib/find.rb +++ b/lib/find.rb @@ -41,13 +41,13 @@ module Find yield file.dup.taint begin s = File.lstat(file) - rescue Errno::ENOENT, Errno::EACCES + rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG next end if s.directory? then begin fs = Dir.entries(file) - rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR + rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG next end fs.sort! |