What is the APR standard for utilizing functions that may or may not be present 
in a specific version of an OS ?
For example, there are two ways, at run time, to detect the presence of 
InterlockedIncrement64() under Windows.

A. You could call a LoadLibrary/GetProcAddress combination on the function, and 
use it if you succeed in getting a valid function pointer.
B. You can make Kernel32.dll delayload, and only attempt to call 
InterlockedIncrement64() if the proper OS version is detected at run time that 
is known to support InterlockedIncrement64().

I guess the same can be done for processor specific features at run time.

/Daniel


-----Original Message-----
From: Jim Jagielski [mailto:j...@jagunet.com]
Sent: Wednesday, January 07, 2009 7:46 AM
To: Justin Erenkrantz
Cc: Daniel May; dev@apr.apache.org
Subject: Re: Does apr_atomic_inc64 exist ?


On Jan 6, 2009, at 12:50 PM, Justin Erenkrantz wrote:

> On Tue, Jan 6, 2009 at 7:17 AM, Daniel May <dan...@spryware.com>
> wrote:
>> I am looking for a 64-bit counterpart to apr_atomic_inc32().  Has
>> this been implemented ?
>
> I don't believe that we've guaranteed 64-bit atomics anywhere.  I'm
> not sure how much underlying OS/architecture support there would
> generically be for 64-bit atomics...   -- justin
>

Unless we do it with mutexes... ugly. But we do have places
in the code where the lack of 64bit "atomics" are a concern...

PS: Am I the only one who, when I see "atomics" think of Patrick
     Stewart in the old Dune movie screaming: "Atomics!" ??

Reply via email to