Commit cfae60d9 authored by Anael Beutot's avatar Anael Beutot
Browse files

Add set_signal_map to utils.

parent be0f10d0
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
import os
import sys
import errno
import signal
import resource
import subprocess
from collections import deque
@@ -137,3 +138,17 @@ def close_fds(exclude_fds=None, debug=False):
        assert sys.stdin.fileno() == 0
        assert sys.stdout.fileno() == 1
        assert sys.stderr.fileno() == 2


def set_signal_map(map_):
    """Set signal map in fork children.

    :param mapping map_: (signal code, handler)...
    :returns: old handlers as dict
    """
    previous_handlers = dict()

    for sig, handler in map_.iteritems():
        previous_handlers[sig] = signal.signal(sig, handler)

    return previous_handlers