summaryrefslogtreecommitdiff
path: root/sql/event_queue.h
diff options
context:
space:
mode:
authorunknown <andrey@lmy004.>2006-07-05 17:12:50 +0200
committerunknown <andrey@lmy004.>2006-07-05 17:12:50 +0200
commitb9a7fe2757d9040296311e96a9e2740416d181f2 (patch)
treeb703fe1427d5c31cc528ae515b4514eeb6c9dce8 /sql/event_queue.h
parenta5dfeb02e991e6e5e9e332443522de1bb4592df8 (diff)
downloadmariadb-git-b9a7fe2757d9040296311e96a9e2740416d181f2.tar.gz
WL#3337 (Event scheduler new architecture)
Cleaned up the code a bit. Fixed few leaks. This code still does not load events on server startup from disk. The problem is that there is a need for a THD instance, which does not exist during server boot. This will be solved soon. Still Event_timed is used both for the memory queue and for exectution. This will be changed according to WL#3337 probably in the next commit. sql/event_data_objects.cc: Strip unneeded stuff from class Event_timed Event_timed is still used for the queue and execution. That will be changed in the next commit. sql/event_data_objects.h: Strip unneeded stuff from class Event_timed Event_timed is still used for the queue and execution. That will be changed in the next commit. sql/event_db_repository.cc: Cosmetics. Add a new method load_named_event_job, to be made complete in the next commit. It will load from disk an instance of Event_job_data to be used during execution. sql/event_db_repository.h: find_event does not need MEM_ROOT anymore because the memory is allocated on Event's own root. sql/event_queue.cc: Remove dead code. Move dumping of the queue to separate method. Make critical sections in create_event & update_event as small as possible - load the new event outside of the section and free the object also outside of it. sql/event_queue.h: init -> init_queue -> easier for ctags deinit -> deinit_queue -> easier for ctags sql/event_scheduler.cc: empty this file sql/event_scheduler.h: empty this file sql/event_scheduler_ng.cc: add back DBUG_RETURN(0) in thread handlers. We don't stop running events when stopping the scheduler. Therefore remove this method now. If it is needed later it can be added back. sql/event_scheduler_ng.h: Remove stop_all_running_threads() init -> init_scheduler deinit -> deinit_scheduler easier for ctags sql/events.cc: Cosmetics sql/events.h: Cosmetics sql/set_var.cc: Remove references to dead code sql/sql_parse.cc: Reorganize a bit.
Diffstat (limited to 'sql/event_queue.h')
-rw-r--r--sql/event_queue.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/sql/event_queue.h b/sql/event_queue.h
index 1335100be21..d253e3c7597 100644
--- a/sql/event_queue.h
+++ b/sql/event_queue.h
@@ -38,15 +38,15 @@ public:
deinit_mutexes();
bool
- init(Event_db_repository *db_repo);
+ init_queue(Event_db_repository *db_repo, Event_scheduler_ng *sched);
void
- deinit();
+ deinit_queue();
/* Methods for queue management follow */
int
- create_event(THD *thd, Event_parse_data *et, bool check_existence);
+ create_event(THD *thd, Event_parse_data *et);
int
update_event(THD *thd, Event_parse_data *et, LEX_STRING *new_schema,
@@ -55,13 +55,9 @@ public:
bool
drop_event(THD *thd, sp_name *name);
- int
+ void
drop_schema_events(THD *thd, LEX_STRING schema);
- int
- drop_user_events(THD *thd, LEX_STRING *definer)
- { DBUG_ASSERT(0); return 0;}
-
uint
events_count();
@@ -89,7 +85,7 @@ public:
void
top_changed();
-///////////////protected
+protected:
Event_timed *
find_event(LEX_STRING db, LEX_STRING name, bool remove_from_q);
@@ -105,8 +101,6 @@ public:
Event_db_repository *db_repository;
- /* The sorted queue with the Event_timed objects */
- QUEUE queue;
uint mutex_last_locked_at_line;
uint mutex_last_unlocked_at_line;
@@ -122,10 +116,16 @@ public:
unlock_data(const char *func, uint line);
void
- on_queue_change();
-
+ notify_observers();
+
+ void
+ dbug_dump_queue(time_t now);
+
Event_scheduler_ng *scheduler;
-protected:
+
+//public:
+ /* The sorted queue with the Event_timed objects */
+ QUEUE queue;
};