> AIUI the standard only guarantees that you can update and access two shared_ptr<>s to the same object safely in different threads.
You can also create two different shared_ptr<>s from the same source in different threads (assuming a const source, of course), which is what the scenario in the bug describes.
> You can't copy construct a shared_ptr<> in one thread while updating the source in another thread.
Agreed. That's the reason for the "there may still be some races around compositor_acquire() and resizing in give_buffer_to_client() that need further investigation" comment.
> AIUI the standard only guarantees that you can update and access two shared_ptr<>s to the same object safely in different threads.
You can also create two different shared_ptr<>s from the same source in different threads (assuming a const source, of course), which is what the scenario in the bug describes.
> You can't copy construct a shared_ptr<> in one thread while updating the source in another thread.
Agreed. That's the reason for the "there may still be some races around compositor_ acquire( ) and resizing in give_buffer_ to_client( ) that need further investigation" comment.