[pypy-commit] pypy use-file-star-for-file: check signals in rfile
bdkearns
noreply at buildbot.pypy.org
Thu Sep 11 12:40:42 CEST 2014
Author: Brian Kearns <bdkearns at gmail.com>
Branch: use-file-star-for-file
Changeset: r73458:c95e690fc570
Date: 2014-09-11 06:36 -0400
http://bitbucket.org/pypy/pypy/changeset/c95e690fc570/
Log: check signals in rfile
diff --git a/pypy/module/_file/interp_file.py b/pypy/module/_file/interp_file.py
--- a/pypy/module/_file/interp_file.py
+++ b/pypy/module/_file/interp_file.py
@@ -57,6 +57,7 @@
raise OperationError(space.w_IOError, w_error)
def fdopenstream(self, stream, mode, w_name=None):
+ stream._signal_checker = signal_checker(self.space)
self.stream = stream
self.mode = mode
self.binary = "b" in mode
diff --git a/rpython/rlib/rfile.py b/rpython/rlib/rfile.py
--- a/rpython/rlib/rfile.py
+++ b/rpython/rlib/rfile.py
@@ -209,6 +209,7 @@
class RFile(object):
+ _signal_checker = None
_readable = True
_writable = True
_setbuf = lltype.nullptr(rffi.CCHARP.TO)
@@ -382,7 +383,8 @@
rposix.get_errno() == errno.EINTR)
if interrupted:
c_clearerr(ll_file)
- # XXX check signals
+ if self._signal_checker is not None:
+ self._signal_checker()
if chunksize == 0:
if interrupted:
continue
@@ -414,7 +416,8 @@
result = c_fgets(raw_buf, BASE_LINE_SIZE, ll_file)
if not result:
c_clearerr(ll_file)
- # XXX check signals
+ if self._signal_checker is not None:
+ self._signal_checker()
return 0
# Assume that fgets() works as documented, and additionally
More information about the pypy-commit
mailing list