2
* Copyright (c) 2021 OceanBase
3
* OceanBase CE is licensed under Mulan PubL v2.
4
* You can use this software according to the terms and conditions of the Mulan PubL v2.
5
* You may obtain a copy of Mulan PubL v2 at:
6
* http://license.coscl.org.cn/MulanPubL-2.0
7
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
* See the Mulan PubL v2 for more details.
13
#include "ob_req_time_service.h"
19
ObReqTimeInfo::ObReqTimeInfo()
20
: start_time_(0), end_time_(0), reentrant_cnt_(0)
22
int ret = common::OB_SUCCESS;
23
if (OB_FAIL(ObGlobalReqTimeService::get_instance().add_req_time_info(this))) {
24
SERVER_LOG(ERROR, "failed to add req time info to list", K(ret));
28
ObReqTimeInfo::~ObReqTimeInfo()
30
int ret = common::OB_SUCCESS;
31
if (OB_FAIL(ObGlobalReqTimeService::get_instance().rm_req_time_info(this))) {
32
SERVER_LOG(ERROR, "failed to remove req time info from list", K(ret));
34
if (0 != reentrant_cnt_) {
35
SERVER_LOG(ERROR, "invalid reentrant cnt", K(reentrant_cnt_));
42
void ObGlobalReqTimeService::check_req_timeinfo()
45
observer::ObReqTimeInfo &req_timeinfo = observer::ObReqTimeInfo::get_thread_local_instance();
47
OB_ASSERT(req_timeinfo.reentrant_cnt_ > 0);
50
} // end namespace server
51
} // end namesapce oceanbase