diff options
author | unknown <andrey@lmy004.> | 2006-07-04 18:44:35 +0200 |
---|---|---|
committer | unknown <andrey@lmy004.> | 2006-07-04 18:44:35 +0200 |
commit | a5dfeb02e991e6e5e9e332443522de1bb4592df8 (patch) | |
tree | 4459403077605a188dd88b131d998654761070d2 /sql/event_queue.h | |
parent | 377446fa3497ffbc0f2a17614d848bfb79f52662 (diff) | |
download | mariadb-git-a5dfeb02e991e6e5e9e332443522de1bb4592df8.tar.gz |
WL #3337 (Event scheduler new architecture)
Cut Nr. 8.
All tests pass.
Separated Event_scheduler into Event_queue and Event_scheduler.
Added new Event_scheduler_ng which is the new scheduler and is used
system-wide. Will be moved to the event_scheduler.cc in the future.
Using Event_timed in Event_queue as well as cloned during execution.
Next step is to have Event_worker_data which will be used during execution
and will take ::compile()/::execute() out of Event_timed.
mysql-test/r/events.result:
update result
mysql-test/r/events_bugs.result:
update result
mysql-test/r/ps_1general.result:
update result
mysql-test/r/skip_name_resolve.result:
update result
mysql-test/r/sp-threads.result:
update result
mysql-test/r/sp_notembedded.result:
update result
mysql-test/r/status.result:
update result
mysql-test/t/events_stress.test:
Make event_stress a bit longer
sql/Makefile.am:
Add new event_scheduler_ng.h/cc . These are only to be in the experimental
clone. Later their content will be moved to event_scheduler.h/cc
sql/event_data_objects.cc:
Allocate strings memory on own memory root, instead
on the schedulers. Thus don't "leak" memory. This should
fix bug#18683 memory leak in event scheduler
sql/event_data_objects.h:
add mem_root
add THD - this is only temporal, will be moved to class Event_job_data
once Event_job_data is responsible for the execution.
sql/event_db_repository.cc:
Remove unused code.
Cosmetic changes
sql/event_queue.cc:
Now use the Event_scheduler_ng (NextGen)
sql/event_queue.h:
Now use the Event_scheduler_ng (NextGen)
sql/event_scheduler.cc:
This file is no more used, but will be soon.
sql/event_scheduler.h:
This file is no more used but will be soon
sql/events.cc:
Now use the Event_scheduler_ng (NextGen)
sql/events.h:
Now use the Event_scheduler_ng (NextGen)
sql/mysqld.cc:
Make it again possible to kill the scheduler thread
sql/set_var.cc:
Now use the Event_scheduler_ng (NextGen)
sql/share/errmsg.txt:
Shorten the message.
sql/sql_show.cc:
Loading is on a own root, then don't use thd->mem_root
Diffstat (limited to 'sql/event_queue.h')
-rw-r--r-- | sql/event_queue.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/sql/event_queue.h b/sql/event_queue.h index 8c11d7a2042..1335100be21 100644 --- a/sql/event_queue.h +++ b/sql/event_queue.h @@ -19,22 +19,23 @@ class sp_name; class Event_timed; class Event_db_repository; +class Event_job_data; class THD; typedef bool * (*event_timed_identifier_comparator)(Event_timed*, Event_timed*); -class Event_scheduler; +class Event_scheduler_ng; class Event_queue { public: Event_queue(); - static void + void init_mutexes(); - static void - destroy_mutexes(); + void + deinit_mutexes(); bool init(Event_db_repository *db_repo); @@ -76,6 +77,18 @@ public: void empty_queue(); + Event_timed * + get_top_for_execution_if_time(THD *thd, time_t now, struct timespec *abstime); + + Event_timed* + get_top(); + + void + remove_top(); + + void + top_changed(); + ///////////////protected Event_timed * find_event(LEX_STRING db, LEX_STRING name, bool remove_from_q); @@ -92,9 +105,6 @@ public: Event_db_repository *db_repository; - /* The MEM_ROOT of the object */ - MEM_ROOT scheduler_root; - /* The sorted queue with the Event_timed objects */ QUEUE queue; @@ -111,11 +121,11 @@ public: void unlock_data(const char *func, uint line); - static void + void on_queue_change(); + + Event_scheduler_ng *scheduler; protected: - /* Singleton instance */ - static Event_scheduler *singleton; }; |