diff options
author | unknown <andrey@lmy004.> | 2006-07-05 17:12:50 +0200 |
---|---|---|
committer | unknown <andrey@lmy004.> | 2006-07-05 17:12:50 +0200 |
commit | b9a7fe2757d9040296311e96a9e2740416d181f2 (patch) | |
tree | b703fe1427d5c31cc528ae515b4514eeb6c9dce8 /sql/event_queue.h | |
parent | a5dfeb02e991e6e5e9e332443522de1bb4592df8 (diff) | |
download | mariadb-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.h | 28 |
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; }; |