|
|
|
@@ -49,6 +49,13 @@ bool HttpServer::InitServer() { |
|
|
|
MS_LOG(EXCEPTION) << "The http server ip:" << server_address_ << " is illegal!"; |
|
|
|
} |
|
|
|
|
|
|
|
int result = evthread_use_pthreads(); |
|
|
|
if (result != 0) { |
|
|
|
MS_LOG(EXCEPTION) << "Use event pthread failed!"; |
|
|
|
} |
|
|
|
|
|
|
|
is_stop_ = false; |
|
|
|
|
|
|
|
event_base_ = event_base_new(); |
|
|
|
MS_EXCEPTION_IF_NULL(event_base_); |
|
|
|
event_http_ = evhttp_new(event_base_); |
|
|
|
@@ -146,13 +153,20 @@ bool HttpServer::Start() { |
|
|
|
|
|
|
|
void HttpServer::Stop() { |
|
|
|
MS_LOG(INFO) << "Stop http server!"; |
|
|
|
if (event_http_) { |
|
|
|
evhttp_free(event_http_); |
|
|
|
event_http_ = nullptr; |
|
|
|
} |
|
|
|
if (event_base_) { |
|
|
|
event_base_free(event_base_); |
|
|
|
event_base_ = nullptr; |
|
|
|
if (!is_stop_.load()) { |
|
|
|
int ret = event_base_loopbreak(event_base_); |
|
|
|
if (ret != 0) { |
|
|
|
MS_LOG(EXCEPTION) << "event base loop break failed!"; |
|
|
|
} |
|
|
|
if (event_http_) { |
|
|
|
evhttp_free(event_http_); |
|
|
|
event_http_ = nullptr; |
|
|
|
} |
|
|
|
if (event_base_) { |
|
|
|
event_base_free(event_base_); |
|
|
|
event_base_ = nullptr; |
|
|
|
} |
|
|
|
is_stop_ = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|