Merge lp:~vjsamuel/drizzle/rplugin-pool-of-threads into lp:~drizzle-trunk/drizzle/development

Proposed by Vijay Samuel
Status: Merged
Merged at revision: 1686
Proposed branch: lp:~vjsamuel/drizzle/rplugin-pool-of-threads
Merge into: lp:~drizzle-trunk/drizzle/development
Diff against target: 177 lines (+24/-104)
2 files modified
plugin/pool_of_threads/pool_of_threads.cc (+24/-5)
po/POTFILES.in (+0/-99)
To merge this branch: bzr merge lp:~vjsamuel/drizzle/rplugin-pool-of-threads
Reviewer Review Type Date Requested Status
Monty Taylor Pending
Review via email: mp+31717@code.launchpad.net

This proposal supersedes a proposal from 2010-08-03.

To post a comment you must log in.
Revision history for this message
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal

Sort of looks like you pushed your memcached_stats branch here by mistake. :)

review: Needs Fixing
Revision history for this message
Vijay Samuel (vjsamuel) wrote : Posted in a previous version of this proposal

I am so sorry! will have it fixed asap.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugin/pool_of_threads/pool_of_threads.cc'
2--- plugin/pool_of_threads/pool_of_threads.cc 2010-05-18 18:20:56 +0000
3+++ plugin/pool_of_threads/pool_of_threads.cc 2010-08-04 03:34:03 +0000
4@@ -23,12 +23,14 @@
5 #include <plugin/pool_of_threads/pool_of_threads.h>
6 #include "drizzled/pthread_globals.h"
7 #include "drizzled/internal/my_pthread.h"
8+#include <boost/program_options.hpp>
9+#include <drizzled/module/option_map.h>
10
11+namespace po= boost::program_options;
12 using namespace std;
13 using namespace drizzled;
14
15 /* Global's (TBR) */
16-static PoolOfThreadsScheduler *scheduler= NULL;
17
18 /**
19 * Set this to true to trigger killing of all threads in the pool
20@@ -56,7 +58,7 @@
21 void libevent_kill_session_callback(int Fd, short Operation, void *ctx);
22 }
23
24-static uint32_t pool_size= 0;
25+static uint32_t pool_size;
26
27 /**
28 * @brief
29@@ -638,10 +640,20 @@
30 */
31 static int init(drizzled::module::Context &context)
32 {
33+ const module::option_map &vm= context.getOptions();
34+
35+ if (vm.count("size"))
36+ {
37+ if (pool_size > 1024 || pool_size < 1)
38+ {
39+ errmsg_printf(ERRMSG_LVL_ERROR, _("Invalid value for size\n"));
40+ exit(-1);
41+ }
42+ }
43+
44 assert(pool_size != 0);
45
46- scheduler= new PoolOfThreadsScheduler("pool_of_threads");
47- context.add(scheduler);
48+ context.add(new PoolOfThreadsScheduler("pool_of_threads"));
49
50 return 0;
51 }
52@@ -655,6 +667,13 @@
53 N_("Size of Pool."),
54 NULL, NULL, 8, 1, 1024, 0);
55
56+static void init_options(drizzled::module::option_context &context)
57+{
58+ context("size",
59+ po::value<uint32_t>(&pool_size)->default_value(8),
60+ N_("Size of Pool."));
61+}
62+
63 static drizzle_sys_var* sys_variables[]= {
64 DRIZZLE_SYSVAR(size),
65 NULL,
66@@ -670,6 +689,6 @@
67 PLUGIN_LICENSE_GPL,
68 init, /* Plugin Init */
69 sys_variables, /* system variables */
70- NULL /* config options */
71+ init_options /* config options */
72 }
73 DRIZZLE_DECLARE_PLUGIN_END;
74
75=== removed file 'po/POTFILES.in'
76--- po/POTFILES.in 2010-07-27 00:41:57 +0000
77+++ po/POTFILES.in 1970-01-01 00:00:00 +0000
78@@ -1,99 +0,0 @@
79-client/drizzle.cc
80-client/drizzledump.cc
81-client/drizzleimport.cc
82-client/drizzleslap.cc
83-client/drizzletest.cc
84-drizzled/cursor.cc
85-drizzled/db.cc
86-drizzled/drizzled.cc
87-drizzled/error.cc
88-drizzled/gettext.h
89-drizzled/ha_commands.cc
90-drizzled/identifier/schema.cc
91-drizzled/identifier/table.cc
92-drizzled/internal/default.cc
93-drizzled/main.cc
94-drizzled/message/transaction_reader.cc
95-drizzled/message/transaction_writer.cc
96-drizzled/module/library.cc
97-drizzled/module/loader.cc
98-drizzled/module/registry.h
99-drizzled/option.cc
100-drizzled/plugin/authentication.cc
101-drizzled/plugin/authorization.cc
102-drizzled/plugin/error_message.cc
103-drizzled/plugin/event_observer.cc
104-drizzled/plugin/function.cc
105-drizzled/plugin/listen.cc
106-drizzled/plugin/listen_tcp.cc
107-drizzled/plugin/logging.cc
108-drizzled/plugin/query_cache.cc
109-drizzled/plugin/query_rewrite.cc
110-drizzled/plugin/scheduler.cc
111-drizzled/plugin/schema_engine.cc
112-drizzled/plugin/storage_engine.cc
113-drizzled/plugin/table_function.cc
114-drizzled/plugin/xa_resource_manager.cc
115-drizzled/plugin/xa_storage_engine.cc
116-drizzled/replication_services.cc
117-drizzled/session.cc
118-drizzled/set_var.cc
119-drizzled/show.cc
120-drizzled/signal_handler.cc
121-drizzled/sql_base.cc
122-drizzled/sql_select.cc
123-drizzled/sql_table.cc
124-drizzled/sql_yacc.cc
125-drizzled/stacktrace.cc
126-drizzled/statement/alter_table.cc
127-drizzled/table.cc
128-drizzled/table_share.cc
129-drizzled/transaction_services.cc
130-drizzled/tztime.cc
131-gnulib/getopt.c
132-gnulib/gettext.h
133-plugin/auth_file/auth_file.cc
134-plugin/auth_http/auth_http.cc
135-plugin/auth_ldap/auth_ldap.cc
136-plugin/blitzdb/ha_blitz.h
137-plugin/console/console.cc
138-plugin/default_replicator/default_replicator.cc
139-plugin/drizzle_protocol/drizzle_protocol.cc
140-plugin/drizzle_protocol/errmsg.cc
141-plugin/embedded_innodb/embedded_innodb_engine.cc
142-plugin/errmsg_notify/errmsg_notify.cc
143-plugin/errmsg_stderr/errmsg_stderr.cc
144-plugin/filtered_replicator/filtered_replicator.cc
145-plugin/hello_events/hello_events.cc
146-plugin/innobase/handler/data_dictionary.cc
147-plugin/innobase/ut/ut0auxconf_pause.c
148-plugin/logging_gearman/logging_gearman.cc
149-plugin/logging_query/logging_query.cc
150-plugin/logging_stats/logging_stats.cc
151-plugin/md5/md5.cc
152-plugin/memcached_stats/analysis_table.cc
153-plugin/memcached_stats/memcached_stats.cc
154-plugin/memcached_stats/stats_table.cc
155-plugin/multi_thread/multi_thread.cc
156-plugin/multi_thread/multi_thread.h
157-plugin/myisam/ha_myisam.cc
158-plugin/myisam/my_handler_errors.cc
159-plugin/mysql_protocol/mysql_protocol.cc
160-plugin/pbms/src/parameters_ms.cc
161-plugin/pool_of_threads/pool_of_threads.cc
162-plugin/pool_of_threads/pool_of_threads.h
163-plugin/pool_of_threads/session_scheduler.cc
164-plugin/rabbitmq/rabbitmq_log.cc
165-plugin/signal_handler/signal_handler.cc
166-plugin/single_thread/single_thread.h
167-plugin/syslog/errmsg.cc
168-plugin/syslog/function.cc
169-plugin/syslog/logging.cc
170-plugin/syslog/module.cc
171-plugin/transaction_log/background_worker.cc
172-plugin/transaction_log/hexdump_transaction_message.cc
173-plugin/transaction_log/module.cc
174-plugin/transaction_log/print_transaction_message.cc
175-plugin/transaction_log/transaction_log.cc
176-plugin/transaction_log/transaction_log_reader.cc
177-plugin/transaction_log/write_buffer.cc