[pypy-commit] pypy default: GetLastError/SetLastError support
arigo
noreply at buildbot.pypy.org
Sun Nov 4 11:32:56 CET 2012
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r58713:05560d7ead06
Date: 2012-11-04 11:32 +0100
http://bitbucket.org/pypy/pypy/changeset/05560d7ead06/
Log: GetLastError/SetLastError support
diff --git a/pypy/module/_cffi_backend/cerrno.py b/pypy/module/_cffi_backend/cerrno.py
--- a/pypy/module/_cffi_backend/cerrno.py
+++ b/pypy/module/_cffi_backend/cerrno.py
@@ -1,9 +1,15 @@
+import sys
from pypy.rlib import rposix
from pypy.interpreter.executioncontext import ExecutionContext
from pypy.interpreter.gateway import unwrap_spec
+WIN32 = sys.platform == 'win32'
+if WIN32:
+ from pypy.rlib import rwin32
+
ExecutionContext._cffi_saved_errno = 0
+ExecutionContext._cffi_saved_LastError = 0
def get_errno_container(space):
@@ -13,10 +19,14 @@
def restore_errno_from(ec):
+ if WIN32:
+ rwin32.SetLastError(ec._cffi_saved_LastError)
rposix.set_errno(ec._cffi_saved_errno)
def save_errno_into(ec, errno):
ec._cffi_saved_errno = errno
+ if WIN32:
+ ec._cffi_saved_LastError = rwin32.GetLastError()
def get_errno(space):
More information about the pypy-commit
mailing list