Agreed. I didn't realize that I had typed return by reference. My bad. -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Johan Nilsson Sent: Friday, July 11, 2008 9:42 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] [Thread] What do I #include? Khandelwal, Amit wrote:
The way I use mutex is to protect one shared resource. Here is sample code that I cooked up. I am not sure why you want to use a single mutex to protect multiple resources. However, if your use case demands
it than wrap those resources in a class and have a mutex as a member variable of that class.
HTH.
Call this file let say ThreadSafeQueue.hpp
#include
#include <iostream> #include <queue> #include <deque> namespace std { namespace threadsafe {
template
class tsqueue { private: std::queue
m_queue; boost::mutex mutex; public:
[snip]
const T& front() { boost::lock_guardboost::mutex lock(mutex); std::cout << "Pop element: " << m_queue.front() << std::endl; return m_queue.front(); }
Ouch. Returning an element by reference could easily lead to trouble when the container is accessed from multiple threads. / Johan _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This message is intended only for the personal and confidential use of the designated recipient(s) named above. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice. -------- IRS Circular 230 Disclosure: Please be advised that any discussion of U.S. tax matters contained within this communication (including any attachments) is not intended or written to be used and cannot be used for the purpose of (i) avoiding U.S. tax related penalties or (ii) promoting, marketing or recommending to another party any transaction or matter addressed herein.