22 #include <plugin/user_locks/module.h>
24 #include <boost/thread/locks.hpp>
28 namespace user_locks {
31 bool Barriers::create(
const user_locks::Key &arg, drizzled::session_id_t owner)
33 boost::unique_lock<boost::mutex> scope(mutex);
34 return barrier_map.insert(std::make_pair(arg,
new Barrier(owner))).second;
37 bool Barriers::create(
const user_locks::Key &arg, drizzled::session_id_t owner, int64_t wait_count)
39 boost::unique_lock<boost::mutex> scope(mutex);
40 return barrier_map.insert(std::make_pair(arg,
new Barrier(owner, wait_count))).second;
51 return_t Barriers::release(
const user_locks::Key &arg, drizzled::session_id_t owner)
53 boost::unique_lock<boost::mutex> scope(mutex);
54 Barrier::shared_ptr iter= find_ptr2(barrier_map, arg);
60 if (iter->getOwner() != owner)
64 (void)barrier_map.erase(arg);
71 boost::unique_lock<boost::mutex> scope(mutex);
72 return find_ptr2(barrier_map, arg);
75 void Barriers::Copy(Map &arg)
77 boost::unique_lock<boost::mutex> scope(mutex);