Added mp_test_4.py
This commit is contained in:
@@ -8,10 +8,10 @@ import gtk
|
||||
import multiprocessing
|
||||
import threading
|
||||
import time
|
||||
|
||||
import random
|
||||
|
||||
gtk.gdk.threads_init()
|
||||
|
||||
|
||||
# Any time you connect to any of these signals, they should be
|
||||
# protected with a threading.Lock or similar.
|
||||
class ObserverBase(gobject.GObject):
|
||||
@@ -69,8 +69,7 @@ class Observer(ObserverBase):
|
||||
raise RuntimeError("Queue had an unknown data type ('"+dataType+"') with value '"+str(data)+"'")
|
||||
|
||||
gobject.type_register(Observer)
|
||||
|
||||
|
||||
|
||||
class Process(gobject.GObject):
|
||||
__gsignals__ = {
|
||||
'starting': (gobject.SIGNAL_RUN_LAST,
|
||||
@@ -93,7 +92,6 @@ class Process(gobject.GObject):
|
||||
# Create observer
|
||||
self.observer = Observer(self.queue)
|
||||
|
||||
|
||||
def getObserver(self):
|
||||
return self.observer
|
||||
|
||||
@@ -118,12 +116,8 @@ class Process(gobject.GObject):
|
||||
# Clean up queue
|
||||
#self.queue.close()
|
||||
|
||||
|
||||
gobject.type_register(Process)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class CombinedObserver(ObserverBase):
|
||||
def __init__(self, observers, weights=None):
|
||||
ObserverBase.__init__(self)
|
||||
@@ -170,11 +164,8 @@ class CombinedObserver(ObserverBase):
|
||||
self.emit("errored")
|
||||
self.lock.release()
|
||||
|
||||
|
||||
|
||||
gobject.type_register(CombinedObserver)
|
||||
|
||||
|
||||
# A ProgressWorker is responsible for (a) getting the job done and (b)
|
||||
# reporting progress. Progress is reported via the queue. Fractions
|
||||
# (from 0 to 1) indicate the proportion of the job that is finished.
|
||||
@@ -190,7 +181,6 @@ class ProgressWorker():
|
||||
def go(self):
|
||||
raise RuntimeError("Worker.go() has not been overridden")
|
||||
|
||||
|
||||
class WorkerExample(ProgressWorker):
|
||||
def __init__(self):
|
||||
#Worker.__init__(self)
|
||||
@@ -206,7 +196,8 @@ class WorkerExample(ProgressWorker):
|
||||
for i in range(10):
|
||||
self.queue.put("working on step "+str(i)+"...")
|
||||
proportion = (float(i)+1)/10
|
||||
time.sleep(0.75)
|
||||
slp = random.uniform(0.50, 3.50)
|
||||
time.sleep(slp)
|
||||
self.queue.put(proportion)
|
||||
self.queue.put("done.")
|
||||
self.queue.put(1.0)
|
||||
@@ -316,9 +307,9 @@ if __name__ == '__main__':
|
||||
#time.sleep(0.1)
|
||||
process3.start()
|
||||
gtk.main()
|
||||
process1.join()
|
||||
process2.join()
|
||||
process3.join()
|
||||
#process1.join()
|
||||
#process2.join()
|
||||
#process3.join()
|
||||
print "finished"
|
||||
sys.exit()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user