[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