Boost shared_ptr use_count function

Posted by photo_tom on Stack Overflow See other posts from Stack Overflow or by photo_tom
Published on 2010-05-28T13:40:41Z Indexed on 2010/05/28 13:42 UTC
Read the original article Hit count: 170

Filed under:
|
|
|

My application problem is the following -

I have a large structure foo. Because these are large and for memory management reasons, we do not wish to delete them when processing on the data is complete.

We are storing them in std::vector<boost::shared_ptr<foo>>.

My question is related to knowing when all processing is complete. First decision is that we do not want any of the other application code to mark a complete flag in the structure because there are multiple execution paths in the program and we cannot predict which one is the last.

So in our implementation, once processing is complete, we delete all copies of boost::shared_ptr<foo>> except for the one in the vector. This will drop the reference counter in the shared_ptr to 1. Is it practical to use shared_ptr.use_count() to see if it is equal to 1 to know when all other parts of my app are done with the data.

One additional reason I'm asking the question is that the boost documentation on the shared pointer shared_ptr recommends not using "use_count" for production code.

© Stack Overflow or respective owner

Related posts about c++

Related posts about best-practices