Date
2010-10-21.18:28:33
Message id
4259

Content

[ San Francisco: ]

Beman: this is a complicated issue, and would like to move this to Open and await comment from Peter Dimov; we need very careful and complete rationale for any decision we make; let's go slow

Detlef: I think that shared_ptr should not be thread-safe.

Hans: When you create a thread with a lambda, it in some cases makes it very difficult for the lambda to reference anything in the heap. It's currently ambiguous as to whether you can use a shared_ptr to get at an object.

Leave in Open. Detlef will submit an alternative proposed resolution that makes shared_ptr explicitly unsafe.

A third option is to support both threadsafe and non-safe share_ptrs, and to let the programmer decide which behavior they want.

Beman: Peter, do you support the PR?

Peter:

Yes, I support the proposed resolution, and I certainly oppose any attempts to make shared_ptr thread-unsafe.

I'd mildly prefer if

[Note: This is true in spite of that fact that such functions often modify use_count() --end note]

is changed to

[Note: This is true in spite of that fact that such functions often cause a change in use_count() --end note]

(or something along these lines) to emphasise that use_count() is not, conceptually, a variable, but a return value.