##// END OF EJS Templates
Pass Windows interrupt event to kernels as an environment variable...
Pass Windows interrupt event to kernels as an environment variable This allows third party kernels to use our interrupt mechanism on Windows. Closes gh-5840

File last commit:

r16120:24b93a1d
r16717:55b9868f
Show More
wmanager.py
44 lines | 1.1 KiB | text/x-python | PythonLexer
"""Mock workflow manager.
This is a mock work manager whose submitted 'jobs' simply consist of executing
a python string. What we want is to see the implementation of the ipython
controller part.
"""
from __future__ import print_function
import atexit
import sys
from subprocess import Popen
def cleanup(controller, engines):
"""Cleanup routine to shut down all subprocesses we opened."""
import signal, time
print('Starting cleanup')
print('Stopping engines...')
for e in engines:
e.send_signal(signal.SIGINT)
print('Stopping controller...')
# so it can shut down its queues
controller.send_signal(signal.SIGINT)
time.sleep(0.1)
print('Killing controller...')
controller.kill()
print('Cleanup done')
if __name__ == '__main__':
# Start controller in separate process
cont = Popen(['python', '-m', 'IPython.parallel.ipcontrollerapp'])
print('Started controller')
# "Submit jobs"
eng = []
for i in range(4):
eng.append(Popen(['python', 'job_wrapper.py','x=%s' % i]))
# Ensure that all subpro
atexit.register(lambda : cleanup(cont, eng))