может здесь как раз и делать trap
trap(signal, &block)