Move signal handling code into the C module

This commit is contained in:
Kovid Goyal
2017-09-15 10:45:11 +05:30
parent 1308bbac2d
commit 94c4c00859
5 changed files with 42 additions and 60 deletions
-24
View File
@@ -6,7 +6,6 @@ import math
import os
import re
import shlex
import signal
import string
import subprocess
from contextlib import contextmanager
@@ -153,29 +152,6 @@ def parse_color_set(raw):
continue
def pipe2():
try:
read_fd, write_fd = os.pipe2(os.O_NONBLOCK | os.O_CLOEXEC)
except AttributeError:
import fcntl
read_fd, write_fd = os.pipe()
for fd in (read_fd, write_fd):
flag = fcntl.fcntl(fd, fcntl.F_GETFD)
fcntl.fcntl(fd, fcntl.F_SETFD, flag | fcntl.FD_CLOEXEC)
flag = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, flag | os.O_NONBLOCK)
return read_fd, write_fd
def handle_unix_signals():
read_fd, write_fd = pipe2()
for sig in (signal.SIGINT, signal.SIGTERM):
signal.signal(sig, lambda x, y: None)
signal.siginterrupt(sig, False)
signal.set_wakeup_fd(write_fd)
return read_fd
def get_primary_selection():
if isosx:
return '' # There is no primary selection on OS X