[pypy-svn] r61028 - in pypy/trunk/pypy: module/posix rpython/module

fijal at codespeak.net fijal at codespeak.net
Fri Jan 16 10:22:15 CET 2009


Author: fijal
Date: Fri Jan 16 10:22:14 2009
New Revision: 61028

Modified:
   pypy/trunk/pypy/module/posix/__init__.py
   pypy/trunk/pypy/module/posix/interp_posix.py
   pypy/trunk/pypy/rpython/module/ll_os.py
Log:
os.{get,set}sid


Modified: pypy/trunk/pypy/module/posix/__init__.py
==============================================================================
--- pypy/trunk/pypy/module/posix/__init__.py	(original)
+++ pypy/trunk/pypy/module/posix/__init__.py	Fri Jan 16 10:22:14 2009
@@ -89,7 +89,8 @@
 
     for name in ['setsid', 'getuid', 'geteuid', 'getgid', 'getegid', 'setuid',
                  'seteuid', 'setgid', 'setegid', 'getpgrp', 'setpgrp',
-                 'getppid', 'getpgid', 'setpgid', 'setreuid', 'setregid']:
+                 'getppid', 'getpgid', 'setpgid', 'setreuid', 'setregid',
+                 'getsid', 'setsid']:
         if hasattr(os, name):
             interpleveldefs[name] = 'interp_posix.%s' % (name,)
     # not visible via os, inconsistency in nt:

Modified: pypy/trunk/pypy/module/posix/interp_posix.py
==============================================================================
--- pypy/trunk/pypy/module/posix/interp_posix.py	(original)
+++ pypy/trunk/pypy/module/posix/interp_posix.py	Fri Jan 16 10:22:14 2009
@@ -723,6 +723,26 @@
     return space.w_None                
 setregid.unwrap_spec = [ObjSpace, int, int]
 
+def getsid(space, pid):
+    """ getsid(pid) -> sid
+
+    Call the system call getsid().
+    """
+    return space.wrap(os.getsid(pid))
+getsid.unwrap_spec = [ObjSpace, int]
+
+def setsid(space):
+    """ setsid()
+
+    Call the system call setsid().
+    """
+    try:
+        os.setsid()
+    except OSError, e:
+        raise wrap_oserror(space, e)
+    return space.w_None                
+setsid.unwrap_spec = [ObjSpace]        
+
 def declare_new_w_star(name):
     if name in RegisterOs.w_star_returning_int:
         def WSTAR(space, status):

Modified: pypy/trunk/pypy/rpython/module/ll_os.py
==============================================================================
--- pypy/trunk/pypy/rpython/module/ll_os.py	(original)
+++ pypy/trunk/pypy/rpython/module/ll_os.py	Fri Jan 16 10:22:14 2009
@@ -544,6 +544,14 @@
     def register_os_setregid(self):
         return self.extdef_for_function_accepting_2int('setregid')
 
+    @registering_if(os, 'getsid')
+    def register_os_getsid(self):
+        return self.extdef_for_function_int_to_int('getsid')
+
+    @registering_if(os, 'setsid')
+    def register_os_setsid(self):
+        return self.extdef_for_os_function_returning_int('setsid')
+
     @registering(os.open)
     def register_os_open(self):
         os_open = self.llexternal(underscore_on_windows+'open',



More information about the Pypy-commit mailing list