D-Programming-Language/druntime — pull request #871 by jasonbking (2014-07-06 20:08:29+00:00)
Title: Fix 13058 - Thread priority handling doesn't work in Solaris

This fixes (or rather works around a long standing Solaris bug) dealing with adjusting a thread's priority. The workaround is to merely utilize the underlying interfaces that the posix functions call.

Utilizing the underlying interface also allows us to obtain the effective maximum priority instead of the absolute maximum. On Solaris systems, typically priorities range from [-60, 60], however non-privileged processes have a cap at 0, effectively limiting them to [-60, 0] (though an admin can change this on the fly). This includes code that (at startup) determines the effective range and uses that as that seems likely to be the best fit to the existing thread.d API.

With the workaround, the tests pass, without it, it fails in adjusting the thread priority back to it's original value.

https://issues.dlang.org/show_bug.cgi?id=13058