[前][次][番号順一覧][スレッド一覧]

ruby-changes:14207

From: akr <ko1@a...>
Date: Sun, 6 Dec 2009 23:17:48 +0900 (JST)
Subject: [ruby-changes:14207] Ruby:r26028 (trunk): * lib/find.rb (Find.find): reduce stat system call.

akr	2009-12-06 23:17:33 +0900 (Sun, 06 Dec 2009)

  New Revision: 26028

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26028

  Log:
    * lib/find.rb (Find.find): reduce stat system call.

  Modified files:
    trunk/ChangeLog
    trunk/lib/find.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26027)
+++ ChangeLog	(revision 26028)
@@ -1,3 +1,7 @@
+Sun Dec  6 23:16:35 2009  Tanaka Akira  <akr@f...>
+
+	* lib/find.rb (Find.find): reduce stat system call.
+
 Sun Dec  6 16:02:15 2009  NARUSE, Yui  <naruse@r...>
 
 	* lib/webrick/httpservlet/filehandler.rb: escape filename of index.
Index: lib/find.rb
===================================================================
--- lib/find.rb	(revision 26027)
+++ lib/find.rb	(revision 26028)
@@ -39,9 +39,13 @@
     while file = paths.shift
       catch(:prune) do
 	yield file.dup.taint
-        next unless File.exist? file
+        begin
+          s = File.lstat(file)
+        rescue SystemCallError
+          next
+        end
 	begin
-	  if File.lstat(file).directory? then
+	  if s.directory? then
 	    d = Dir.open(file)
 	    begin
 	      for f in d

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]