Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import trace
- import threading
- import time
- class Thread(threading.Thread):
- def __init__(self, *args, **keywords):
- threading.Thread.__init__(self, *args, **keywords)
- self.killed = False
- def start(self):
- self.__run_backup = self.run
- self.run = self.__run
- threading.Thread.start(self)
- def __run(self):
- sys.settrace(self.globaltrace)
- self.__run_backup()
- self.run = self.__run_backup
- def globaltrace(self, frame, event, arg):
- if event == 'call':
- return self.localtrace
- else:
- return None
- def localtrace(self, frame, event, arg):
- if self.killed:
- if event == 'line':
- raise SystemExit()
- return self.localtrace
- def kill(self):
- self.killed = True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement