Author: Joannah Nanjekye <nanjekyejoan...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit