Boost logo

Boost :

From: John Torjo (john.lists_at_[hidden])
Date: 2004-09-21 10:49:33


Hi Peter,

I just took your implementation
(http://www.pdimov.com/cpp/shared_count_x86_exp2.hpp) for shared_ptr and
use it now in win32gui (upcoming v1.4.2). Using Interlocked* for win32
totally rocks!

 From my tests - Interlocked* are very fast. They're about twice as slow
as a raw increment (or my tests are wrong;)).

 From what I see - I think you can certainly merge them into
boost::shared_ptr.
Maybe users can select the old version or this Interlocked* version with
a certain macro - like BOOST_SHARED_PTR_USE_INTERLOCKED.

Also, why not including windows.h directly, like this:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

<side-note>
 From my tests it seems your version as is now fails to link for gcc
(unresolved external _InterlockedIncrement/_InterlockedDecrement).
However, if #including <windows.h> and use
InterlockedIncrement/Decrement - they work.
</side-note>

Best,
John

-- 
John Torjo
-- john_at_[hidden]
Contributing editor, C/C++ Users Journal
-- "Win32 GUI Generics" -- generics & GUI do mix, after all
-- http://www.torjo.com/win32gui/
-- v1.4 - save_dlg - true binding of your data to UI controls!
    + easily add validation rules (win32gui/examples/smart_dlg)

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk