turn off EINTR-raising from emulated syscalls on interruption by signals

    due to the nature of greenhouse's system call emulation,
    ``signal.siginterrupt`` can't be made to work with it. specifically,
    greenhouse can't differentiate between different signals. so this function
    toggles whether to restart for *ALL* or *NO* signals.

    :param flag:
        whether to turn EINTR exceptions off (``True``) or on (``False``)
    :type flag: bool

def set_ignore_interrupts(flag=True):
    """turn off EINTR-raising from emulated syscalls on interruption by signals

    due to the nature of greenhouse's system call emulation,
    ``signal.siginterrupt`` can't be made to work with it. specifically,
    greenhouse can't differentiate between different signals. so this function
    toggles whether to restart for *ALL* or *NO* signals.

    :param flag:
        whether to turn EINTR exceptions off (``True``) or on (``False``)
    :type flag: bool
    """
    log.info("setting ignore_interrupts to %r" % flag)
    state.ignore_interrupts = bool(flag)