[Ace-users] [ace-bugs] ACE : support all WindowsCE priorites with CeGetThreadPriority

Daniel Lang daniel.lang at alphagate.at
Mon Feb 11 02:43:25 CST 2008


   ACE VERSION: 5.6.2

    HOST MACHINE and OPERATING SYSTEM:
        If on Windows based OS's, which version of WINSOCK do you
        use?:
Host is WindowsXP with winsock2.0 Library.

    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
ARM processor and WindowsCE6.0
    COMPILER NAME AND VERSION (AND PATCHLEVEL):
MS Visual Studio 2005 V8.0 SP.050727-7600

    THE $ACE_ROOT/ace/config.h FILE:
#include "ace\config-win32.h"

    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:

    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
    (used by MPC when you generate your own makefiles):

    AREA/CLASS/EXAMPLE AFFECTED:

    DOES THE PROBLEM AFFECT:
        COMPILATION?
        LINKING?
            On Unix systems, did you run make realclean first?
        EXECUTION?
        OTHER (please specify)?
Not all WindowsCE priorities are supported.

    SYNOPSIS:
WindowsCE support up to 256 priority level but the implementation of
ace/OS_NS_Thread.inl uses deprecated WindowsCE method so ACE can use only
8 priority levels.

    DESCRIPTION:
As you can read on http://msdn2.microsoft.com/en-us/library/aa450596.aspx
WindowsCE support 256 priority levels. But the ACE method
ACE_OS::thr_getprio uses the legacy WindowsCE method ::GetThreadPriority
in order to retrieve the priority of current thread. So ACE applications
for WindowsCE can use 8 priority levels only. This is a big problem for
realtime based WindowsCE applications. If ACE would use
::CeGetThreadPriority instead of ::GetThreadPriority all 256 levels could
be used.

    REPEAT BY:


    SAMPLE FIX/WORKAROUND:




More information about the Ace-users mailing list