[Development] QIntrusiveSharedPointer
Mutz, Marc
marc at kdab.com
Thu Aug 8 11:43:07 CEST 2019
On 2019-08-08 12:33, Philippe wrote:
>> No. When you call detach(), you're in a mutating function of the
>> object
>> and you can assume that you're the only thread executing on a member
>> function of that thread, because if that's not the case, you're in UB
>> land. Only const methods are allowed to execute concurrently on the
>> same
>> object. Mutators must get exclusive access.
>
> Absolutly right, but a method "isDetached()" which is const
> has no usefulness on its own, independently from a detach() procedure.
> This is the purpose of my orginal remark.
Which isDetached() are you talking about?
Don't mix the Intrusive Protocol with QISP members. The IP is a
C++0X-pre-C++11 concept_map for use by QISP. It's not for being called
by users.
If there _was_ a QIntrusiveSharedPointer::isDetached(), _then_ it would
have the same problem as shared_ptr::unique() in that the result becomes
meaningless upon return to the caller. Such a method might still useful,
but it's not currently proposed; qIntrusiveDetached() is _not_ that
function.
HTH,
Marc
More information about the Development
mailing list