できることは、短い「トリップワイヤー」タイプのモジュールを作成し、それをインポートしてマルチプロセッシングすることです。マルチプロセッシングの無限ループを検出すると、trip-wire モジュールは例外を発生させます。
私は次のようになります。
#mp_guard.py
"""tracks invocation by creating an environment variable; if that
variable exists when next called a loop is in progress"""
import os
class Brick(Exception):
def __init__(self):
Exception.__init__(self, "Your machine just narrowly avoided becoming"
" a brick!")
if 'MP_GUARD' in os.environ:
raise Brick
os.environ['MP_GUARD'] = 'active'
そして、メインの .py ファイルで:
import mp_guard