Author: Joannah Nanjekye <[email protected]>
Branch: get/setpriority
Changeset: r90377:e245c0e11157
Date: 2016-12-27 23:45 +0300
http://bitbucket.org/pypy/pypy/changeset/e245c0e11157/
Log: getpriority and setpriority attributes
diff --git a/pypy/module/posix/__init__.py b/pypy/module/posix/__init__.py
--- a/pypy/module/posix/__init__.py
+++ b/pypy/module/posix/__init__.py
@@ -169,7 +169,8 @@
'setpgrp', 'getppid', 'getpgid', 'setpgid', 'setreuid',
'setregid', 'getsid', 'setsid', 'fstatvfs', 'statvfs',
'setgroups', 'initgroups', 'tcgetpgrp', 'tcsetpgrp',
- 'getresuid', 'getresgid', 'setresuid', 'setresgid']:
+ 'getresuid', 'getresgid', 'setresuid', 'setresgid',
+ 'getpriority', 'setpriority']:
if hasattr(os, name):
interpleveldefs[name] = 'interp_posix.%s' % (name,)
# not visible via os, inconsistency in nt:
diff --git a/pypy/module/posix/interp_posix.py
b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -1605,6 +1605,29 @@
except OSError as e:
raise wrap_oserror(space, e)
+@unwrap_spec(program=int, identifier=int)
+def getpriority(space, program, identifier):
+ """ getpriority(process, identifier) -> current_priority
+
+ Get program scheduling priority.
+ """
+ try:
+ returned_priority = os.getpriority(process, identifier)
+ except OSError as e:
+ raise wrap_oserror(space, e)
+ return space.wrap(returned_priority)
+
+@unwrap_spec(program=int, identifier=int, priority=int)
+def setpriority(space, program, identifier, priority):
+ """ setpriority(process, identifier)
+
+ Set program scheduling priority.
+ """
+ try:
+ os.setpriority(process, identifier, priority)
+ except OSError as e:
+ raise wrap_oserror(space, e)
+
@unwrap_spec(path='fsencode')
def chroot(space, path):
""" chroot(path)
@@ -2241,4 +2264,4 @@
flags |= rposix.O_NONBLOCK
rposix.set_status_flags(fd, flags)
except OSError as e:
- raise wrap_oserror(space, e)
+ raise wrap_oserror(space, e)
\ No newline at end of file
diff --git a/pypy/module/posix/test/test_posix2.py
b/pypy/module/posix/test/test_posix2.py
--- a/pypy/module/posix/test/test_posix2.py
+++ b/pypy/module/posix/test/test_posix2.py
@@ -850,6 +850,17 @@
assert st.st_size == 10000000000
test_largefile.need_sparse_files = True
+ def test_os_getpriority(self):
+ posix, os = self.posix, self.os
+ assert os.getpriority(os.PRIO_PROCESS, os.getpid()) ==
posix.getpriority(os.PRIO_PROCESS, os.getpid())
+
+ def test_os_setpriority(self):
+ os = self.posix
+ result = os.getpriority(os.PRIO_PROCESS, os.getpid())
+ os.setpriority(os.PRIO_PROCESS, os.getpid(), result + 1)
+ new_result = os.getpriority(os.PRIO_PROCESS, os.getpid())
+ assert new_result == (result + 1)
+
def test_write_buffer(self):
os = self.posix
fd = os.open(self.path2 + 'test_write_buffer',
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit