Opened 16 years ago

Closed 16 years ago

#632 closed Patches (Accepted)

evc4 port: Interlocked*-functions without volatile

Reported by: vividos Owned by: Peter Dimov
Milestone: Component: None
Version: None Severity:
Keywords: Cc:

Description

This patch fixes the definition of the
Interlocked*-functions when using Windows CE
(_WIN32_WCE is defined). The functions use the "old"
(VC6 without platform SDK) forms of the functions
without the volatile keyword. The patch can be applied
to both CVS HEAD and the 1_34 branch, since the file
wasn't modified since then.

Change History (5)

comment:1 by vividos, 16 years ago

Summary: evc3/4 port: Interlocked*-functions without volatileevc4 port: Interlocked*-functions without volatile
Logged In: YES 
user_id=124874

Changed summary: it's only evc4 of course, since evc3 is too
non-standard to support boost.

comment:2 by Peter Dimov, 16 years ago

Logged In: YES 
user_id=305912

The patch doesn't look correct to me. Using WINAPI would
require inclusion of <windows.h>; in this case just defining
BOOST_USE_WINDOWS_H would be a better approach.

It also patches the intrinsic section without also declaring
the functions as intrinsics; is this intended? Does evc4
have intrinsic support for these functions? If it doesn't,
we need to disallow the intrinsic path for _WIN32_WCE and
patch the WIN32 section instead.

comment:3 by vividos, 16 years ago

Logged In: YES 
user_id=124874

I added a new version of the patch that avoids WINAPI
(replaced by __cdecl, as used by the BOOST_MSVC part of the
file. Including <windows.h> is not needed here, I think. In
evc4 there are no intrinsics for the Interlocked-functions
and the pragmas produce errors telling so. The _WIN32_WCE
part of the file provides the BOOST_INTERLOCKED_ macros in
its own section now.

comment:4 by Peter Dimov, 16 years ago

Logged In: YES 
user_id=305912

Applied to 1.34 and HEAD.

comment:5 by sf-robot, 16 years ago

Status: assignedclosed
Logged In: YES 
user_id=1312539

This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).
Note: See TracTickets for help on using tickets.