Source code for eon.mpiwait


import logging
import logging.handlers
logger = logging.getLogger('mpiwait')
from eon.config import config
from time import sleep
from sys import exit
import signal

QUIT = False
[docs] def signal_handler(signum, frame): global QUIT QUIT = True logger.info('Signal handler caught signal %i', signum)
[docs] def mpiwait(): from mpi4py import MPI signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) signal.signal(signal.SIGUSR1, signal_handler) signal.signal(signal.SIGUSR2, signal_handler) while True: sleep(config.mpi_poll_period) if QUIT: exit(0) if MPI.COMM_WORLD.Iprobe(MPI.ANY_SOURCE, MPI.ANY_TAG): break