00001 #pragma once 00002 #include <boost/thread.hpp> 00003 00004 namespace Moses 00005 { 00006 class ThreadSafeCounter 00007 { 00008 size_t ctr; 00009 boost::mutex lock; 00010 public: 00011 ThreadSafeCounter(); 00012 size_t operator++(); 00013 size_t operator++(int); 00014 size_t operator--(); 00015 size_t operator--(int); 00016 operator size_t() const; 00017 }; 00018 00019 } 00020 00021