Author: Armin Rigo <ar...@tunes.org> Branch: py3.5 Changeset: r89663:920d60110d57 Date: 2017-01-18 19:14 +0100 http://bitbucket.org/pypy/pypy/changeset/920d60110d57/
Log: hg merge default diff --git a/rpython/rlib/rposix.py b/rpython/rlib/rposix.py --- a/rpython/rlib/rposix.py +++ b/rpython/rlib/rposix.py @@ -234,6 +234,7 @@ _ptyh = 'pty.h' includes = ['unistd.h', 'sys/types.h', 'sys/wait.h', 'utime.h', 'sys/time.h', 'sys/times.h', + 'sys/resource.h', 'grp.h', 'dirent.h', 'sys/stat.h', 'fcntl.h', 'signal.h', 'sys/utsname.h', _ptyh] if sys.platform.startswith('freebsd'): @@ -249,6 +250,9 @@ SEEK_SET = rffi_platform.DefinedConstantInteger('SEEK_SET') SEEK_CUR = rffi_platform.DefinedConstantInteger('SEEK_CUR') SEEK_END = rffi_platform.DefinedConstantInteger('SEEK_END') + PRIO_PROCESS = rffi_platform.DefinedConstantInteger('PRIO_PROCESS') + PRIO_PGRP = rffi_platform.DefinedConstantInteger('PRIO_PGRP') + PRIO_USER = rffi_platform.DefinedConstantInteger('PRIO_USER') O_NONBLOCK = rffi_platform.DefinedConstantInteger('O_NONBLOCK') OFF_T_SIZE = rffi_platform.SizeOf('off_t') @@ -261,6 +265,7 @@ if not _WIN32: UID_T = rffi_platform.SimpleType('uid_t', rffi.UINT) GID_T = rffi_platform.SimpleType('gid_t', rffi.UINT) + ID_T = rffi_platform.SimpleType('id_t', rffi.UINT) TIOCGWINSZ = rffi_platform.DefinedConstantInteger('TIOCGWINSZ') TMS = rffi_platform.Struct( @@ -1734,6 +1739,22 @@ def setresgid(rgid, egid, sgid): handle_posix_error('setresgid', c_setresgid(rgid, egid, sgid)) + c_getpriority = external('getpriority', [rffi.INT, ID_T], rffi.INT, + save_err=rffi.RFFI_FULL_ERRNO_ZERO) + c_setpriority = external('setpriority', [rffi.INT, ID_T, rffi.INT], + rffi.INT, save_err=rffi.RFFI_SAVE_ERRNO) + + def getpriority(which, who): + result = widen(c_getpriority(which, who)) + error = get_saved_errno() + if error != 0: + raise OSError(error, 'getpriority failed') + return result + + def setpriority(which, who, prio): + handle_posix_error('setpriority', c_setpriority(which, who, prio)) + + #___________________________________________________________________ c_chroot = external('chroot', [rffi.CCHARP], rffi.INT, diff --git a/rpython/rlib/test/test_rposix.py b/rpython/rlib/test/test_rposix.py --- a/rpython/rlib/test/test_rposix.py +++ b/rpython/rlib/test/test_rposix.py @@ -669,3 +669,10 @@ finally: os.close(fd1) os.close(fd2) + +@rposix_requires('getpriority') +def test_getpriority(): + # a "don't crash" kind of test only + prio = rposix.getpriority(rposix.PRIO_PROCESS, 0) + rposix.setpriority(rposix.PRIO_PROCESS, 0, prio) + py.test.raises(OSError, rposix.getpriority, rposix.PRIO_PGRP, 123456789) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit