oceanbase

Форк
0
/
ob_req_time_service.cpp 
51 строка · 1.5 Кб
1
/**
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.
11
 */
12

13
#include "ob_req_time_service.h"
14

15
namespace oceanbase
16
{
17
namespace observer
18
{
19
ObReqTimeInfo::ObReqTimeInfo()
20
  : start_time_(0), end_time_(0), reentrant_cnt_(0)
21
{
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));
25
  }
26
}
27

28
ObReqTimeInfo::~ObReqTimeInfo()
29
{
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));
33
  }
34
  if (0 != reentrant_cnt_) {
35
    SERVER_LOG(ERROR, "invalid reentrant cnt", K(reentrant_cnt_));
36
  }
37
  start_time_ = 0;
38
  end_time_ = 0;
39
  reentrant_cnt_ = 0;
40
}
41

42
void ObGlobalReqTimeService::check_req_timeinfo()
43
{
44
#if !defined(NDEBUG)
45
  observer::ObReqTimeInfo &req_timeinfo =  observer::ObReqTimeInfo::get_thread_local_instance();
46

47
  OB_ASSERT(req_timeinfo.reentrant_cnt_ > 0);
48
#endif
49
}
50
} // end namespace server
51
} // end namesapce oceanbase
52

53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.