21 #include <drizzled/session/cache.h>
23 #include <boost/foreach.hpp>
24 #include <drizzled/current_session.h>
25 #include <drizzled/plugin/authorization.h>
26 #include <drizzled/session.h>
32 bool volatile Cache::_ready_to_exit=
false;
33 Cache::list Cache::cache;
34 boost::mutex Cache::_mutex;
35 boost::condition_variable Cache::_end;
37 Cache::session_ptr Cache::find(
const session_id_t &
id)
39 boost::mutex::scoped_lock scopedLock(_mutex);
40 BOOST_FOREACH(list::const_reference it, cache)
42 if (it->thread_id ==
id)
48 void Cache::shutdownFirst()
50 boost::mutex::scoped_lock scopedLock(_mutex);
58 void Cache::shutdownSecond()
60 boost::mutex::scoped_lock scopedLock(_mutex);
62 while (not _ready_to_exit)
64 _end.wait(scopedLock);
70 boost::mutex::scoped_lock scopedLock(_mutex);
75 void Cache::insert(
const session_ptr& arg)
77 boost::mutex::scoped_lock scopedLock(_mutex);
81 void Cache::erase(
const session_ptr& arg)
83 list::iterator iter= std::find(cache.begin(), cache.end(), arg);
84 assert(iter != cache.end());
TODO: Rename this file - func.h is stupid.