def setUp(self): def loadRascal(path): rascal = Rascal() rascal.load(path) return rascal imapfw_path = os.path.abspath(sys.modules['imapfw'].__path__[0]) rascalsDir = os.path.join( imapfw_path, 'testing', 'rascals', ) self.multiprocessing = Concurrency('multiprocessing') self.threading = Concurrency('threading') self.rascal = loadRascal(os.path.join(rascalsDir, 'syncaccounts.1.rascal'))
class TestMultiProcessing(unittest.TestCase): def setUp(self): self.backend = Concurrency('multiprocessing') def test_00_instanciate(self): self.assertIsInstance(self.backend, ConcurrencyInterface) def test_01_worker(self): def runner(q): q.put(1) workerName = 'worker' queue = self.backend.createQueue() worker = self.backend.createBasicWorker(workerName, runner, (queue, )) worker.start() self.assertEqual(worker.getName(), workerName) worker.join() self.assertEqual(queue.get(), 1)
class TestMultiProcessing(unittest.TestCase): def setUp(self): self.backend = Concurrency('multiprocessing') def test_00_instanciate(self): self.assertIsInstance(self.backend, ConcurrencyInterface) def test_01_worker(self): def runner(q): q.put(1) workerName = 'worker' queue = self.backend.createQueue() worker = self.backend.createBasicWorker(workerName, runner, (queue,)) worker.start() self.assertEqual(worker.getName(), workerName) worker.join() self.assertEqual(queue.get(), 1)
# python3 -m imapfw.managers.demo # import sys import time import imapfw from imapfw.concurrency.concurrency import Concurrency from imapfw.managers.manager import Manager from imapfw.ui.tty import TTY from imapfw.managers.trigger import Trigger c = Concurrency('multiprocessing') q = c.createQueue() q.get_nowait() ui = TTY(c.createLock()) def output(args): print(args) sys.stdout.flush() def runner(emitter): output('runner started') output('initA')
return receiver, emitter if __name__ == "__main__": # Run this demo like this (from the root directory): # python3 -m imapfw.edmp # # We catch exception since it's run as a test in travis. _DEBUG = True # Set to True for more output and stack trace on error. import sys from imapfw.concurrency.concurrency import Concurrency from imapfw.ui.tty import TTY c = Concurrency("multiprocessing") ui = TTY(c.createLock()) ui.configure() if _DEBUG: ui.enableDebugCategories(["emitters"]) ui.setCurrentWorkerNameFunction(c.getCurrentWorkerNameFunction()) runtime.set_module("ui", ui) runtime.set_module("concurrency", c) def run_async(): ui.info("******** running run_async()") __REMOTE__ = "http://imapfw.github.io" __CONNECTED__ = "would be connected" driverReceiver, driverEmitter = newEmitterReceiver("driver")
def setUp(self): self.backend = Concurrency('multiprocessing')
return receiver, emitter if __name__ == '__main__': # Run this demo like this (from the root directory): # python3 -m imapfw.edmp # # We catch exception since it's run as a test in travis. _DEBUG = True # Set to True for more output and stack trace on error. import sys from imapfw.concurrency.concurrency import Concurrency from imapfw.ui.tty import TTY c = Concurrency('multiprocessing') ui = TTY(c.createLock()) ui.configure() if _DEBUG: ui.enableDebugCategories(['emitters']) ui.setCurrentWorkerNameFunction(c.getCurrentWorkerNameFunction()) runtime.set_module('ui', ui) runtime.set_module('concurrency', c) def run_async(): ui.info("******** running run_async()") __REMOTE__ = 'http://imapfw.github.io' __CONNECTED__ = 'would be connected' driverReceiver, driverEmitter = newEmitterReceiver('driver')