Author: Brian Kearns <[email protected]>
Branch: use-file-star-for-file
Changeset: r73472:851a85c58d90
Date: 2014-09-11 16:27 -0400
http://bitbucket.org/pypy/pypy/changeset/851a85c58d90/

Log:    avoid releasing gil for some rfile functions

diff --git a/rpython/rlib/rfile.py b/rpython/rlib/rfile.py
--- a/rpython/rlib/rfile.py
+++ b/rpython/rlib/rfile.py
@@ -87,25 +87,26 @@
 _fclose2 = (c_fclose, c_fclose_in_del)
 _pclose2 = (c_pclose, c_pclose_in_del)
 
-c_getc = llexternal('getc', [FILEP], rffi.INT, macro=True)
-c_ungetc = llexternal('ungetc', [rffi.INT, FILEP], rffi.INT)
+c_getc = llexternal('getc', [FILEP], rffi.INT, macro=True, releasegil=False)
+c_ungetc = llexternal('ungetc', [rffi.INT, FILEP], rffi.INT, releasegil=False)
+
 c_fgets = llexternal('fgets', [rffi.CCHARP, rffi.INT, FILEP], rffi.CCHARP)
 c_fread = llexternal('fread', [rffi.CCHARP, rffi.SIZE_T, rffi.SIZE_T, FILEP],
                      rffi.SIZE_T)
-
 c_fwrite = llexternal('fwrite', [rffi.CCHARP, rffi.SIZE_T, rffi.SIZE_T, FILEP],
                       rffi.SIZE_T)
+
 c_fflush = llexternal('fflush', [FILEP], rffi.INT)
 c_fflush_nogil = llexternal('fflush', [FILEP], rffi.INT, releasegil=False)
 c_ftruncate = llexternal(ftruncate, [rffi.INT, OFF_T], rffi.INT, macro=True)
 
 c_fseek = llexternal('fseek', [FILEP, rffi.LONG, rffi.INT], rffi.INT)
 c_ftell = llexternal('ftell', [FILEP], rffi.LONG)
-c_fileno = llexternal(fileno, [FILEP], rffi.INT)
 
-c_feof = llexternal('feof', [FILEP], rffi.INT)
-c_ferror = llexternal('ferror', [FILEP], rffi.INT)
-c_clearerr = llexternal('clearerr', [FILEP], lltype.Void)
+c_fileno = llexternal(fileno, [FILEP], rffi.INT, releasegil=False)
+c_feof = llexternal('feof', [FILEP], rffi.INT, releasegil=False)
+c_ferror = llexternal('ferror', [FILEP], rffi.INT, releasegil=False)
+c_clearerr = llexternal('clearerr', [FILEP], lltype.Void, releasegil=False)
 
 c_stdin = llexternal('get_stdin', [], FILEP, _nowrapper=True)
 c_stdout = llexternal('get_stdout', [], FILEP, _nowrapper=True)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to