From a2bafc3ea86514e5b1fd67d4ae2b427b18ccbf33 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 6 May 2005 01:36:35 +0000 Subject: '' --- manual/ChangeLog | 5 + manual/PortabilityIssues.html | 718 ++++++++++++++++++++++++++++++++++++++++++ manual/index.html | 4 +- manual/nonPortableIssues.html | 718 ------------------------------------------ 4 files changed, 725 insertions(+), 720 deletions(-) create mode 100644 manual/PortabilityIssues.html delete mode 100644 manual/nonPortableIssues.html diff --git a/manual/ChangeLog b/manual/ChangeLog index f30e19a..78824d1 100644 --- a/manual/ChangeLog +++ b/manual/ChangeLog @@ -1,3 +1,8 @@ +2005-05-06 Ross Johnson + + * PortabilityIssues.html: Was nonPortableIssues.html. + * index.html: Updated. + 2005-05-06 Ross Johnson * index.html: New. diff --git a/manual/PortabilityIssues.html b/manual/PortabilityIssues.html new file mode 100644 index 0000000..e828ae3 --- /dev/null +++ b/manual/PortabilityIssues.html @@ -0,0 +1,718 @@ + + + + + PORTABILITYISSUES manual page + + + + + + + +

Table of Contents

+

Name

+

Portability issues

+

Synopsis

+

Thread priority

+

Description

+

Thread priority

+

POSIX defines a single contiguous range +of numbers that determine a thread's priority. Win32 defines priority +classes - and priority levels relative to these classes. Classes are +simply priority base levels that the defined priority levels are +relative to such that, changing a process's priority class will +change the priority of all of it's threads, while the threads retain +the same relativity to each other.

+

A Win32 system defines a single +contiguous monotonic range of values that define system priority +levels, just like POSIX. However, Win32 restricts individual threads +to a subset of this range on a per-process basis.

+

The following table shows the base +priority levels for combinations of priority class and priority value +in Win32.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

Process Priority Class

+
+

Thread Priority Level

+
+

1

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_IDLE

+
+

1

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_IDLE

+
+

1

+
+

NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_IDLE

+
+

1

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_IDLE

+
+

1

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_IDLE

+
+

2

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

3

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

4

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

4

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

5

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

5

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

5

+
+

Background NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

6

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

6

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

6

+
+

Background NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

7

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

7

+
+

Background NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

7

+
+

Foreground NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

8

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

8

+
+

NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

8

+
+

Foreground NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

8

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

9

+
+

NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

9

+
+

Foreground NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

9

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

10

+
+

Foreground NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

10

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

11

+
+

Foreground NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

11

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

11

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

12

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

12

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

13

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

14

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

15

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

15

+
+

HIGH_PRIORITY_CLASS

+
+

THREAD_PRIORITY_TIME_CRITICAL

+
+

15

+
+

IDLE_PRIORITY_CLASS

+
+

THREAD_PRIORITY_TIME_CRITICAL

+
+

15

+
+

BELOW_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_TIME_CRITICAL

+
+

15

+
+

NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_TIME_CRITICAL

+
+

15

+
+

ABOVE_NORMAL_PRIORITY_CLASS

+
+

THREAD_PRIORITY_TIME_CRITICAL

+
+

16

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_IDLE

+
+

17

+
+

REALTIME_PRIORITY_CLASS

+
+

-7

+
+

18

+
+

REALTIME_PRIORITY_CLASS

+
+

-6

+
+

19

+
+

REALTIME_PRIORITY_CLASS

+
+

-5

+
+

20

+
+

REALTIME_PRIORITY_CLASS

+
+

-4

+
+

21

+
+

REALTIME_PRIORITY_CLASS

+
+

-3

+
+

22

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_LOWEST

+
+

23

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_BELOW_NORMAL

+
+

24

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_NORMAL

+
+

25

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_ABOVE_NORMAL

+
+

26

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_HIGHEST

+
+

27

+
+

REALTIME_PRIORITY_CLASS

+
+

3

+
+

28

+
+

REALTIME_PRIORITY_CLASS

+
+

4

+
+

29

+
+

REALTIME_PRIORITY_CLASS

+
+

5

+
+

30

+
+

REALTIME_PRIORITY_CLASS

+
+

6

+
+

31

+
+

REALTIME_PRIORITY_CLASS

+
+

THREAD_PRIORITY_TIME_CRITICAL

+
+
+
+

Windows NT: Values -7, -6, -5, -4, -3, 3, +4, 5, and 6 are not supported.

+

As you can see, the real priority levels +available to any individual Win32 thread are non-contiguous.

+

An application using Pthreads-w32 should +not make assumptions about the numbers used to represent thread +priority levels, except that they are monotonic between the values +returned by sched_get_priority_min() and sched_get_priority_max(). +E.g. Windows 95, 98, NT, 2000, XP make available a non-contiguous +range of numbers between -15 and 15, while at least one version of +WinCE (3.0) defines the minimum priority (THREAD_PRIORITY_LOWEST) as +5, and the maximum priority (THREAD_PRIORITY_HIGHEST) as 1.

+

Internally, pthreads-win32 maps any +priority levels between THREAD_PRIORITY_IDLE and +THREAD_PRIORITY_LOWEST to THREAD_PRIORITY_LOWEST, or between +THREAD_PRIORITY_TIME_CRITICAL and THREAD_PRIORITY_HIGHEST to +THREAD_PRIORITY_HIGHEST. Currently, this also applies to +REALTIME_PRIORITY_CLASS even if levels -7, -6, -5, -4, -3, 3, 4, 5, +and 6 are supported.

+

If it wishes, a Win32 application using +pthreads-w32 can use the Win32 defined priority macros +THREAD_PRIORITY_IDLE through THREAD_PRIORITY_TIME_CRITICAL.

+

Author

+

Ross Johnson for use with Pthreads-w32.

+

See also

+



+

+
+

Table of Contents

+ + + \ No newline at end of file diff --git a/manual/index.html b/manual/index.html index 3a2b9bd..328090f 100644 --- a/manual/index.html +++ b/manual/index.html @@ -5,7 +5,7 @@ - +

POSIX Threads for Windows – Pthreads-w32

@@ -134,7 +134,7 @@

pthread_win32_thread_attach_np

pthread_win32_thread_detach_np

Other

-

Non-portable +

Portability issues

\ No newline at end of file diff --git a/manual/nonPortableIssues.html b/manual/nonPortableIssues.html deleted file mode 100644 index 6585f36..0000000 --- a/manual/nonPortableIssues.html +++ /dev/null @@ -1,718 +0,0 @@ - - - - - NONPORTABLEISSUES manual page - - - - - - - -

Table of Contents

-

Name

-

Non-portable issues

-

Synopsis

-

Thread priority

-

Description

-

Thread priority

-

POSIX defines a single contiguous range -of numbers that determine a thread's priority. Win32 defines priority -classes - and priority levels relative to these classes. Classes are -simply priority base levels that the defined priority levels are -relative to such that, changing a process's priority class will -change the priority of all of it's threads, while the threads retain -the same relativity to each other.

-

A Win32 system defines a single -contiguous monotonic range of values that define system priority -levels, just like POSIX. However, Win32 restricts individual threads -to a subset of this range on a per-process basis.

-

The following table shows the base -priority levels for combinations of priority class and priority value -in Win32.

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-


-

-
-

Process Priority Class

-
-

Thread Priority Level

-
-

1

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_IDLE

-
-

1

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_IDLE

-
-

1

-
-

NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_IDLE

-
-

1

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_IDLE

-
-

1

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_IDLE

-
-

2

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

3

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

4

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

4

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

5

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

5

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

5

-
-

Background NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

6

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

6

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

6

-
-

Background NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

7

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

7

-
-

Background NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

7

-
-

Foreground NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

8

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

8

-
-

NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

8

-
-

Foreground NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

8

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

9

-
-

NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

9

-
-

Foreground NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

9

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

10

-
-

Foreground NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

10

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

11

-
-

Foreground NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

11

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

11

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

12

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

12

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

13

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

14

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

15

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

15

-
-

HIGH_PRIORITY_CLASS

-
-

THREAD_PRIORITY_TIME_CRITICAL

-
-

15

-
-

IDLE_PRIORITY_CLASS

-
-

THREAD_PRIORITY_TIME_CRITICAL

-
-

15

-
-

BELOW_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_TIME_CRITICAL

-
-

15

-
-

NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_TIME_CRITICAL

-
-

15

-
-

ABOVE_NORMAL_PRIORITY_CLASS

-
-

THREAD_PRIORITY_TIME_CRITICAL

-
-

16

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_IDLE

-
-

17

-
-

REALTIME_PRIORITY_CLASS

-
-

-7

-
-

18

-
-

REALTIME_PRIORITY_CLASS

-
-

-6

-
-

19

-
-

REALTIME_PRIORITY_CLASS

-
-

-5

-
-

20

-
-

REALTIME_PRIORITY_CLASS

-
-

-4

-
-

21

-
-

REALTIME_PRIORITY_CLASS

-
-

-3

-
-

22

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_LOWEST

-
-

23

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_BELOW_NORMAL

-
-

24

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_NORMAL

-
-

25

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_ABOVE_NORMAL

-
-

26

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_HIGHEST

-
-

27

-
-

REALTIME_PRIORITY_CLASS

-
-

3

-
-

28

-
-

REALTIME_PRIORITY_CLASS

-
-

4

-
-

29

-
-

REALTIME_PRIORITY_CLASS

-
-

5

-
-

30

-
-

REALTIME_PRIORITY_CLASS

-
-

6

-
-

31

-
-

REALTIME_PRIORITY_CLASS

-
-

THREAD_PRIORITY_TIME_CRITICAL

-
-
-
-

Windows NT: Values -7, -6, -5, -4, -3, 3, -4, 5, and 6 are not supported.

-

As you can see, the real priority levels -available to any individual Win32 thread are non-contiguous.

-

An application using Pthreads-w32 should -not make assumptions about the numbers used to represent thread -priority levels, except that they are monotonic between the values -returned by sched_get_priority_min() and sched_get_priority_max(). -E.g. Windows 95, 98, NT, 2000, XP make available a non-contiguous -range of numbers between -15 and 15, while at least one version of -WinCE (3.0) defines the minimum priority (THREAD_PRIORITY_LOWEST) as -5, and the maximum priority (THREAD_PRIORITY_HIGHEST) as 1.

-

Internally, pthreads-win32 maps any -priority levels between THREAD_PRIORITY_IDLE and -THREAD_PRIORITY_LOWEST to THREAD_PRIORITY_LOWEST, or between -THREAD_PRIORITY_TIME_CRITICAL and THREAD_PRIORITY_HIGHEST to -THREAD_PRIORITY_HIGHEST. Currently, this also applies to -REALTIME_PRIORITY_CLASS even if levels -7, -6, -5, -4, -3, 3, 4, 5, -and 6 are supported.

-

If it wishes, a Win32 application using -pthreads-w32 can use the Win32 defined priority macros -THREAD_PRIORITY_IDLE through THREAD_PRIORITY_TIME_CRITICAL.

-

Author

-

Ross Johnson for use with Pthreads-w32.

-

See also

-



-

-
-

Table of Contents

- - - \ No newline at end of file -- cgit v1.2.3