30 #include <drizzled/session.h>
31 #include <drizzled/item/func.h>
32 #include <drizzled/internal/my_pthread.h>
33 #include <drizzled/function/str/strfunc.h>
34 #include <drizzled/plugin/function.h>
39 using namespace drizzled;
45 pthread_mutex_t LOCK_sleep;
54 const char *func_name()
const
59 void fix_length_and_dec()
78 if ((arg_count != 1) || ! (dtime= args[0]->val_real()))
97 boost::this_thread::restore_interruption dl(session.getThreadInterupt());
101 xtime_get(&xt, boost::TIME_UTC_);
102 xt.nsec += (uint64_t)(dtime * 1000000000ULL);
103 session.getThread()->sleep(xt);
105 catch(boost::thread_interrupted
const& error)
107 my_error(drizzled::ER_QUERY_INTERRUPTED, MYF(0));
122 context.add(
new plugin::Create_function<Item_func_sleep>(
"sleep"));
127 DRIZZLE_DECLARE_PLUGIN
133 N_(
"SLEEP function"),
139 DRIZZLE_DECLARE_PLUGIN_END;
bool check_argument_count(int n)