16 Aug
2008
16 Aug
'08
2:36 p.m.
David Abrahams wrote:
on Sat Aug 16 2008, "Eduardo Panisset"
wrote: if( new_use_count == 0 ) { dispose(); weak_release(); }
How Can I ensure that the release member function wouldn't dispose a pointee more than one time ? (release executing concurrently from different shared_ptr instances)
Because the reference count was 1, there can be only one shared_ptr instance that owns the pointee. No other threads can be referencing it.
But since the mutex is released, a copy could be created before the new_use_count test is reached? Or is it impossible to create a copy if use_count_ is zero? [Sorry, I didn't take the time to look at the code myself, gotta run.] --> Mika Heiskanen