From ee37bcf5e22d97e4f875f26af686d9652668c952 Mon Sep 17 00:00:00 2001 From: "mkaply%us.ibm.com" Date: Thu, 3 Aug 2006 16:01:49 +0000 Subject: [PATCH] #346376 r=wtc, sr=mkaply Patch from Peter Weilbacher - OS/2 - Don't use PRTYC_IDLETIME class for thread priorities --- nsprpub/pr/src/md/os2/os2thred.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/nsprpub/pr/src/md/os2/os2thred.c b/nsprpub/pr/src/md/os2/os2thred.c index 69f06aa02358..5bda4cbebf90 100644 --- a/nsprpub/pr/src/md/os2/os2thred.c +++ b/nsprpub/pr/src/md/os2/os2thred.c @@ -261,7 +261,8 @@ _PR_MD_YIELD(void) void _PR_MD_SET_PRIORITY(_MDThread *thread, PRThreadPriority newPri) { - int nativePri; + int nativePri = PRTYC_NOCHANGE; + int delta = 0; BOOL rv; if (newPri < PR_PRIORITY_FIRST) { @@ -271,7 +272,9 @@ _PR_MD_SET_PRIORITY(_MDThread *thread, PRThreadPriority newPri) } switch (newPri) { case PR_PRIORITY_LOW: - nativePri = PRTYC_IDLETIME; + /* instead of PRTYC_IDLETIME use PRTYC_REGULAR with low delta */ + nativePri = PRTYC_REGULAR; + delta = -25; break; case PR_PRIORITY_NORMAL: nativePri = PRTYC_REGULAR; @@ -282,10 +285,10 @@ _PR_MD_SET_PRIORITY(_MDThread *thread, PRThreadPriority newPri) case PR_PRIORITY_URGENT: nativePri = PRTYC_TIMECRITICAL; } - rv = DosSetPriority(PRTYS_THREAD, nativePri, 0, thread->handle); + rv = DosSetPriority(PRTYS_THREAD, nativePri, delta, thread->handle); PR_ASSERT(rv == NO_ERROR); if (rv != NO_ERROR) { - PR_LOG(_pr_thread_lm, PR_LOG_MIN, + PR_LOG(_pr_thread_lm, PR_LOG_MIN, ("PR_SetThreadPriority: can't set thread priority\n")); } return;