summaryrefslogtreecommitdiffstats
path: root/Demo
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-10-18 18:20:33 (GMT)
committerGuido van Rossum <guido@python.org>2002-10-18 18:20:33 (GMT)
commitb50e1dee86551ebab3f44b5cbce179546b009f43 (patch)
treef7c9c46caf5f5d6eee43383de96f19f44114d410 /Demo
parent5e31c3f768cebbcf5c6a0e62b45c4216f153954a (diff)
downloadcpython-b50e1dee86551ebab3f44b5cbce179546b009f43.zip
cpython-b50e1dee86551ebab3f44b5cbce179546b009f43.tar.gz
cpython-b50e1dee86551ebab3f44b5cbce179546b009f43.tar.bz2
Note lack of speedup. Remove Irix reference. Remove silly extra
'/tmp' arg. Change predicate to look for world-writable non-symlink files.
Diffstat (limited to 'Demo')
-rw-r--r--Demo/threads/find.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/Demo/threads/find.py b/Demo/threads/find.py
index 11fb65a..ab581e3 100644
--- a/Demo/threads/find.py
+++ b/Demo/threads/find.py
@@ -3,14 +3,16 @@
# This demonstrates the use of a work queue and worker threads.
# It really does do more stats/sec when using multiple threads,
# although the improvement is only about 20-30 percent.
+# (That was 8 years ago. In 2002, on Linux, I can't measure
+# a speedup. :-( )
# I'm too lazy to write a command line parser for the full find(1)
# command line syntax, so the predicate it searches for is wired-in,
# see function selector() below. (It currently searches for files with
-# group or world write permission.)
+# world write permission.)
# Usage: parfind.py [-w nworkers] [directory] ...
-# Default nworkers is 4, maximum appears to be 8 (on Irix 4.0.2)
+# Default nworkers is 4
import sys
@@ -98,7 +100,6 @@ class WorkQ:
# Main program
def main():
- sys.argv.append("/tmp")
nworkers = 4
opts, args = getopt.getopt(sys.argv[1:], '-w:')
for opt, arg in opts:
@@ -122,8 +123,8 @@ def main():
# Feel free to change this to suit your purpose
def selector(dir, name, fullname, stat):
- # Look for group or world writable files
- return (stat[ST_MODE] & 0022) != 0
+ # Look for world writable files that are not symlinks
+ return (stat[ST_MODE] & 0002) != 0 and not S_ISLNK(stat[ST_MODE])
# The find procedure -- calls wq.addwork() for subdirectories