Signal handling is hard