From: Yehuda Sadeh Date: Tue, 5 Nov 2013 01:54:51 +0000 (-0800) Subject: rgw: allow multiple frontends of the same framework X-Git-Tag: v0.75~60^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4c3b6d602c58ee213bc898c8efe4b1112db16c79;p=ceph.git rgw: allow multiple frontends of the same framework it is possible to set up mongoose on multiple ports, e.g., rgw frontends = mongoose:80, mongoose:8080 Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc index b0238f395790..8b533aaa2ed7 100644 --- a/src/rgw/rgw_main.cc +++ b/src/rgw/rgw_main.cc @@ -316,13 +316,11 @@ static void handle_sigterm(int signum) dout(1) << __func__ << dendl; FCGX_ShutdownPending(); - signal_shutdown(); - // send a signal to make fcgi's accept(2) wake up. unfortunately the // initial signal often isn't sufficient because we race with accept's // check of the flag wet by ShutdownPending() above. if (signum != SIGUSR1) { - kill(getpid(), SIGUSR1); + signal_shutdown(); // safety net in case we get stuck doing an orderly shutdown. uint64_t secs = g_ceph_context->_conf->rgw_exit_timeout_secs; @@ -589,6 +587,7 @@ public: void stop() { pprocess->close_fd(); + thread->kill(SIGUSR1); } void join() { @@ -783,7 +782,7 @@ int main(int argc, const char **argv) get_str_list(g_conf->rgw_frontends, frontends); - map fe_map; + multimap fe_map; for (list::iterator iter = frontends.begin(); iter != frontends.end(); ++iter) { string& f = *iter; @@ -798,16 +797,16 @@ int main(int argc, const char **argv) framework = f; } - fe_map[framework] = config; + fe_map.insert(make_pair(framework, config)); } if (fe_map.empty()) { - fe_map["fastcgi"] = ""; + fe_map.insert(make_pair("fastcgi", "")); } list fes; - for (map::iterator fiter = fe_map.begin(); fiter != fe_map.end(); ++fiter) { + for (multimap::iterator fiter = fe_map.begin(); fiter != fe_map.end(); ++fiter) { const string& framework = fiter->first; const string& config = fiter->second; dout(0) << "handler: " << fiter->first << ":" << config << dendl;