[Tutor] threading issues

Chris Hallman challman at gmail.com
Sun Oct 23 00:07:25 CEST 2005


I hacked together my first script to learn threading. I'm seeing some weird
output.

This script will PING approximately 1,000 routers. I added a few print
commands for debugging so I can see if it runs faster than a single threaded
script. It blazes through the routers, however I'm seeing multiple prints
(PINGs) for the same device. What is causing this?

Also, I can get fc to write to the file.



#!/usr/bin/env python

#Let us profile code which uses threads
import os, re, string, thread, threading, time
from time import strftime
#from threading import Thread

class PingThread(threading.Thread):
def run(self):
pingaf = os.popen('ping -n 1 -w 3 ' + rtr)
pingas = string.join(pingaf.readlines())
if ms.search(pingas):
print (re.sub('\n','',rtr)) + " responded." #for debugging
else:
pingaf = os.popen('ping -n 2 -w 3 ' + rtr)
pingas = string.join(pingaf.readlines())
if ms.search(pingas):
print (re.sub('\n','',rtr)) + " responded." # for debugging
else:
fc=fc+1
output.write(re.sub('\n','',rtr) + " did not respond.\n")

fc = 0 # failure counter
ms = re.compile("Reply from")
rpath = (r"c:\temp\py\network_ping_routers.txt")
if os.path.exists(r"c:\temp\py\network_ping_again.txt"):
rpath = (r"c:\temp\py\network_ping_again.txt")
wpath = (r"c:\temp\py\network_ping.out")
#os.system(r"c:\tnd\bin\cawto.exe -cat NetNet -n l17aesm1 forward blue held
Weekly ISDN testing has started -" + strftime(" %H:%M:%S %x") + "\n")
output = open(wpath, "a")
output.write("\n" + "\n" + "Network PING test started -" + strftime("
%H:%M:%S %x") + "\n")
output.flush()

for rtr in file(rpath):
PingThread().start()
print fc # for debugging
#output.write(fc + " failures found.\n")
output.write("\n" + "\n" + "Network PING test completed -" + strftime("
%H:%M:%S %x") + "\n")
output.close()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20051022/40c30694/attachment.htm


More information about the Tutor mailing list