YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/Users/deen/code/yugabyte-db/src/yb/rpc/scheduler.h
Line
Count
Source
1
//
2
// Copyright (c) YugaByte, Inc.
3
//
4
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
// in compliance with the License.  You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software distributed under the License
10
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
// or implied.  See the License for the specific language governing permissions and limitations
12
// under the License.
13
//
14
//
15
16
#ifndef YB_RPC_SCHEDULER_H
17
#define YB_RPC_SCHEDULER_H
18
19
#include "yb/rpc/rpc_fwd.h"
20
#include "yb/util/net/net_fwd.h"
21
22
#include "yb/util/status.h"
23
24
namespace yb {
25
26
class Status;
27
28
namespace rpc {
29
30
using ScheduledTaskId = int64_t;
31
constexpr ScheduledTaskId kUninitializedScheduledTaskId = 0;
32
33
class ScheduledTaskBase {
34
 public:
35
  explicit ScheduledTaskBase(ScheduledTaskId id, const SteadyTimePoint& time)
36
39.0M
      : id_(id), time_(time) {}
37
38
48.3M
  ScheduledTaskId id() const { return id_; }
39
353M
  SteadyTimePoint time() const { return time_; }
40
41
39.0M
  virtual ~ScheduledTaskBase() {}
42
  virtual void Run(const Status& status) = 0;
43
44
 private:
45
  ScheduledTaskId id_;
46
  SteadyTimePoint time_;
47
};
48
49
template<class F>
50
class ScheduledTask : public ScheduledTaskBase {
51
 public:
52
  explicit ScheduledTask(ScheduledTaskId id, const SteadyTimePoint& time, const F& f)
53
36.9M
      : ScheduledTaskBase(id, time), f_(f) {}
Unexecuted instantiation: redis_commands.cc:yb::rpc::ScheduledTask<yb::redisserver::(anonymous namespace)::HandleDebugSleep(yb::redisserver::(anonymous namespace)::LocalCommandData)::SleepWaiter>::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::redisserver::(anonymous namespace)::HandleDebugSleep(yb::redisserver::(anonymous namespace)::LocalCommandData)::SleepWaiter const&)
periodic.cc:yb::rpc::ScheduledTask<yb::rpc::PeriodicTimer::Callback(long long)::$_0>::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::rpc::PeriodicTimer::Callback(long long)::$_0 const&)
Line
Count
Source
53
18.7M
      : ScheduledTaskBase(id, time), f_(f) {}
yb::rpc::ScheduledTask<std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> >::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> const&)
Line
Count
Source
53
16.5M
      : ScheduledTaskBase(id, time), f_(f) {}
call_home.cc:yb::rpc::ScheduledTask<yb::CallHome::ScheduleCallHome(int)::$_0>::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::CallHome::ScheduleCallHome(int)::$_0 const&)
Line
Count
Source
53
1.11M
      : ScheduledTaskBase(id, time), f_(f) {}
permissions.cc:yb::rpc::ScheduledTask<yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1>::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1 const&)
Line
Count
Source
53
118k
      : ScheduledTaskBase(id, time), f_(f) {}
yb::rpc::ScheduledTask<yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&)>::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&) const&)
Line
Count
Source
53
462k
      : ScheduledTaskBase(id, time), f_(f) {}
transaction_pool.cc:yb::rpc::ScheduledTask<std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> >::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> const&)
Line
Count
Source
53
4.69k
      : ScheduledTaskBase(id, time), f_(f) {}
system_query_cache.cc:yb::rpc::ScheduledTask<yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0>::ScheduledTask(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0 const&)
Line
Count
Source
53
11.9k
      : ScheduledTaskBase(id, time), f_(f) {}
54
55
37.0M
  void Run(const Status& status) override {
56
37.0M
    f_(status);
57
37.0M
  }
Unexecuted instantiation: redis_commands.cc:yb::rpc::ScheduledTask<yb::redisserver::(anonymous namespace)::HandleDebugSleep(yb::redisserver::(anonymous namespace)::LocalCommandData)::SleepWaiter>::Run(yb::Status const&)
periodic.cc:yb::rpc::ScheduledTask<yb::rpc::PeriodicTimer::Callback(long long)::$_0>::Run(yb::Status const&)
Line
Count
Source
55
18.6M
  void Run(const Status& status) override {
56
18.6M
    f_(status);
57
18.6M
  }
yb::rpc::ScheduledTask<std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> >::Run(yb::Status const&)
Line
Count
Source
55
16.7M
  void Run(const Status& status) override {
56
16.7M
    f_(status);
57
16.7M
  }
call_home.cc:yb::rpc::ScheduledTask<yb::CallHome::ScheduleCallHome(int)::$_0>::Run(yb::Status const&)
Line
Count
Source
55
1.10M
  void Run(const Status& status) override {
56
1.10M
    f_(status);
57
1.10M
  }
permissions.cc:yb::rpc::ScheduledTask<yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1>::Run(yb::Status const&)
Line
Count
Source
55
116k
  void Run(const Status& status) override {
56
116k
    f_(status);
57
116k
  }
yb::rpc::ScheduledTask<yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&)>::Run(yb::Status const&)
Line
Count
Source
55
456k
  void Run(const Status& status) override {
56
456k
    f_(status);
57
456k
  }
transaction_pool.cc:yb::rpc::ScheduledTask<std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> >::Run(yb::Status const&)
Line
Count
Source
55
3.77k
  void Run(const Status& status) override {
56
3.77k
    f_(status);
57
3.77k
  }
system_query_cache.cc:yb::rpc::ScheduledTask<yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0>::Run(yb::Status const&)
Line
Count
Source
55
8.95k
  void Run(const Status& status) override {
56
8.95k
    f_(status);
57
8.95k
  }
58
 private:
59
  F f_;
60
};
61
62
template<class F>
63
class ScheduledTaskWithId : public ScheduledTaskBase {
64
 public:
65
  explicit ScheduledTaskWithId(ScheduledTaskId id, const SteadyTimePoint& time, const F& f)
66
2.02M
      : ScheduledTaskBase(id, time), f_(f) {}
yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::ScheduledTaskWithId(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&) const&)
Line
Count
Source
66
143k
      : ScheduledTaskBase(id, time), f_(f) {}
yb::rpc::ScheduledTaskWithId<yb::rpc::ServicePoolImpl::ScheduleCheckTimeout(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'()::operator()() const::'lambda'(long long, yb::Status const&)>::ScheduledTaskWithId(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, yb::rpc::ServicePoolImpl::ScheduleCheckTimeout(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'()::operator()() const::'lambda'(long long, yb::Status const&) const&)
Line
Count
Source
66
1.63M
      : ScheduledTaskBase(id, time), f_(f) {}
yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::ScheduledTaskWithId(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&) const&)
Line
Count
Source
66
86
      : ScheduledTaskBase(id, time), f_(f) {}
catalog_manager.cc:yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::ScheduledTaskWithId(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&) const&)
Line
Count
Source
66
5.06k
      : ScheduledTaskBase(id, time), f_(f) {}
catalog_manager.cc:yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::ScheduledTaskWithId(long long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&, void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&) const&)
Line
Count
Source
66
245k
      : ScheduledTaskBase(id, time), f_(f) {}
67
68
1.96M
  void Run(const Status& status) override {
69
1.96M
    f_(id(), status);
70
1.96M
  }
yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::Run(yb::Status const&)
Line
Count
Source
68
126k
  void Run(const Status& status) override {
69
126k
    f_(id(), status);
70
126k
  }
yb::rpc::ScheduledTaskWithId<yb::rpc::ServicePoolImpl::ScheduleCheckTimeout(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'()::operator()() const::'lambda'(long long, yb::Status const&)>::Run(yb::Status const&)
Line
Count
Source
68
1.59M
  void Run(const Status& status) override {
69
1.59M
    f_(id(), status);
70
1.59M
  }
yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::Run(yb::Status const&)
Line
Count
Source
68
86
  void Run(const Status& status) override {
69
86
    f_(id(), status);
70
86
  }
catalog_manager.cc:yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::Run(yb::Status const&)
Line
Count
Source
68
4.18k
  void Run(const Status& status) override {
69
4.18k
    f_(id(), status);
70
4.18k
  }
catalog_manager.cc:yb::rpc::ScheduledTaskWithId<void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>::Run(yb::Status const&)
Line
Count
Source
68
237k
  void Run(const Status& status) override {
69
237k
    f_(id(), status);
70
237k
  }
71
72
 private:
73
  F f_;
74
};
75
76
class Scheduler {
77
 public:
78
  explicit Scheduler(IoService* io_service);
79
  ~Scheduler();
80
81
  template<class F>
82
36.9M
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
36.9M
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
36.9M
  }
periodic.cc:long long yb::rpc::Scheduler::Schedule<yb::rpc::PeriodicTimer::Callback(long long)::$_0>(yb::rpc::PeriodicTimer::Callback(long long)::$_0 const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
18.7M
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
18.7M
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
18.7M
  }
long long yb::rpc::Scheduler::Schedule<std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
16.5M
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
16.5M
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
16.5M
  }
call_home.cc:long long yb::rpc::Scheduler::Schedule<yb::CallHome::ScheduleCallHome(int)::$_0>(yb::CallHome::ScheduleCallHome(int)::$_0 const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
1.11M
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
1.11M
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
1.11M
  }
permissions.cc:long long yb::rpc::Scheduler::Schedule<yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1>(yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1 const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
118k
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
118k
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
118k
  }
long long yb::rpc::Scheduler::Schedule<yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&)>(yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&) const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
462k
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
462k
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
462k
  }
transaction_pool.cc:long long yb::rpc::Scheduler::Schedule<std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
4.69k
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
4.69k
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
4.69k
  }
system_query_cache.cc:long long yb::rpc::Scheduler::Schedule<yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0>(yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0 const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
82
11.9k
  ScheduledTaskId Schedule(const F& f, std::chrono::steady_clock::duration delay) {
83
11.9k
    return Schedule(f, std::chrono::steady_clock::now() + delay);
84
11.9k
  }
85
86
  template<class F>
87
  auto Schedule(const F& f, std::chrono::steady_clock::time_point time) ->
88
37.0M
      decltype(f(Status()), ScheduledTaskId()) {
89
37.0M
    auto id = NextId();
90
37.0M
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
37.0M
    return id;
92
37.0M
  }
Unexecuted instantiation: redis_commands.cc:decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::redisserver::(anonymous namespace)::HandleDebugSleep(yb::redisserver::(anonymous namespace)::LocalCommandData)::SleepWaiter>(yb::redisserver::(anonymous namespace)::HandleDebugSleep(yb::redisserver::(anonymous namespace)::LocalCommandData)::SleepWaiter const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
periodic.cc:decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::rpc::PeriodicTimer::Callback(long long)::$_0>(yb::rpc::PeriodicTimer::Callback(long long)::$_0 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
18.7M
      decltype(f(Status()), ScheduledTaskId()) {
89
18.7M
    auto id = NextId();
90
18.7M
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
18.7M
    return id;
92
18.7M
  }
decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::rpc::Poller::*)(yb::Status const&), yb::rpc::Poller*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
16.5M
      decltype(f(Status()), ScheduledTaskId()) {
89
16.5M
    auto id = NextId();
90
16.5M
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
16.5M
    return id;
92
16.5M
  }
call_home.cc:decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::CallHome::ScheduleCallHome(int)::$_0>(yb::CallHome::ScheduleCallHome(int)::$_0 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
1.11M
      decltype(f(Status()), ScheduledTaskId()) {
89
1.11M
    auto id = NextId();
90
1.11M
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
1.11M
    return id;
92
1.11M
  }
permissions.cc:decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1>(yb::client::internal::PermissionsCache::ScheduleGetPermissionsFromMaster(bool)::$_1 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
118k
      decltype(f(Status()), ScheduledTaskId()) {
89
118k
    auto id = NextId();
90
118k
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
118k
    return id;
92
118k
  }
decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&)>(yb::client::YBTransaction::Impl::HeartbeatDone(yb::Status, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&, yb::TransactionStatus, std::__1::shared_ptr<yb::client::YBTransaction> const&)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
462k
      decltype(f(Status()), ScheduledTaskId()) {
89
462k
    auto id = NextId();
90
462k
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
462k
    return id;
92
462k
  }
transaction_pool.cc:decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::client::(anonymous namespace)::SingleLocalityPool::*)(yb::Status const&), yb::client::(anonymous namespace)::SingleLocalityPool*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
4.69k
      decltype(f(Status()), ScheduledTaskId()) {
89
4.69k
    auto id = NextId();
90
4.69k
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
4.69k
    return id;
92
4.69k
  }
system_query_cache.cc:decltype((fp((yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0>(yb::cqlserver::SystemQueryCache::ScheduleRefreshCache(bool)::$_0 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
88
11.9k
      decltype(f(Status()), ScheduledTaskId()) {
89
11.9k
    auto id = NextId();
90
11.9k
    DoSchedule(std::make_shared<ScheduledTask<F>>(id, time, f));
91
11.9k
    return id;
92
11.9k
  }
93
94
  template<class F>
95
  auto Schedule(const F& f, std::chrono::steady_clock::time_point time) ->
96
2.02M
      decltype(f(ScheduledTaskId(), Status()), ScheduledTaskId()) {
97
2.02M
    auto id = NextId();
98
2.02M
    DoSchedule(std::make_shared<ScheduledTaskWithId<F>>(id, time, f));
99
2.02M
    return id;
100
2.02M
  }
decltype((fp((long long)(), (yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
96
143k
      decltype(f(ScheduledTaskId(), Status()), ScheduledTaskId()) {
97
143k
    auto id = NextId();
98
143k
    DoSchedule(std::make_shared<ScheduledTaskWithId<F>>(id, time, f));
99
143k
    return id;
100
143k
  }
decltype((fp((long long)(), (yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<yb::rpc::ServicePoolImpl::ScheduleCheckTimeout(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'()::operator()() const::'lambda'(long long, yb::Status const&)>(yb::rpc::ServicePoolImpl::ScheduleCheckTimeout(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'()::operator()() const::'lambda'(long long, yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
96
1.63M
      decltype(f(ScheduledTaskId(), Status()), ScheduledTaskId()) {
97
1.63M
    auto id = NextId();
98
1.63M
    DoSchedule(std::make_shared<ScheduledTaskWithId<F>>(id, time, f));
99
1.63M
    return id;
100
1.63M
  }
decltype((fp((long long)(), (yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
96
86
      decltype(f(ScheduledTaskId(), Status()), ScheduledTaskId()) {
97
86
    auto id = NextId();
98
86
    DoSchedule(std::make_shared<ScheduledTaskWithId<F>>(id, time, f));
99
86
    return id;
100
86
  }
catalog_manager.cc:decltype((fp((long long)(), (yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
96
5.06k
      decltype(f(ScheduledTaskId(), Status()), ScheduledTaskId()) {
97
5.06k
    auto id = NextId();
98
5.06k
    DoSchedule(std::make_shared<ScheduledTaskWithId<F>>(id, time, f));
99
5.06k
    return id;
100
5.06k
  }
catalog_manager.cc:decltype((fp((long long)(), (yb::Status)())) , ((long long)())) yb::rpc::Scheduler::Schedule<void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
96
245k
      decltype(f(ScheduledTaskId(), Status()), ScheduledTaskId()) {
97
245k
    auto id = NextId();
98
245k
    DoSchedule(std::make_shared<ScheduledTaskWithId<F>>(id, time, f));
99
245k
    return id;
100
245k
  }
101
102
  void Abort(ScheduledTaskId task_id);
103
104
  void Shutdown();
105
106
  IoService& io_service();
107
108
 private:
109
  ScheduledTaskId NextId();
110
111
  void DoSchedule(std::shared_ptr<ScheduledTaskBase> task);
112
113
  class Impl;
114
  std::unique_ptr<Impl> impl_;
115
};
116
117
class ScheduledTaskTracker {
118
 public:
119
16.1k
  ScheduledTaskTracker() = default;
120
121
  explicit ScheduledTaskTracker(Scheduler* scheduler);
122
123
15.8k
  void Bind(Scheduler* scheduler) {
124
15.8k
    scheduler_ = scheduler;
125
15.8k
  }
126
127
  template <class F>
128
393k
  void Schedule(const F& f, std::chrono::steady_clock::duration delay) {
129
393k
    Schedule(f, std::chrono::steady_clock::now() + delay);
130
393k
  }
void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
128
143k
  void Schedule(const F& f, std::chrono::steady_clock::duration delay) {
129
143k
    Schedule(f, std::chrono::steady_clock::now() + delay);
130
143k
  }
void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
128
86
  void Schedule(const F& f, std::chrono::steady_clock::duration delay) {
129
86
    Schedule(f, std::chrono::steady_clock::now() + delay);
130
86
  }
catalog_manager.cc:void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
128
5.06k
  void Schedule(const F& f, std::chrono::steady_clock::duration delay) {
129
5.06k
    Schedule(f, std::chrono::steady_clock::now() + delay);
130
5.06k
  }
catalog_manager.cc:void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >)
Line
Count
Source
128
245k
  void Schedule(const F& f, std::chrono::steady_clock::duration delay) {
129
245k
    Schedule(f, std::chrono::steady_clock::now() + delay);
130
245k
  }
131
132
  template <class F>
133
393k
  void Schedule(const F& f, std::chrono::steady_clock::time_point time) {
134
393k
    Abort();
135
393k
    if (++num_scheduled_ < 0) { // Shutting down
136
86
      --num_scheduled_;
137
86
      return;
138
86
    }
139
393k
    last_scheduled_task_id_ = scheduler_->Schedule(
140
393k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
368k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
368k
      f(status);
143
368k
      --num_scheduled_;
144
368k
    }, time);
void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)::operator()(long long, yb::Status const&) const
Line
Count
Source
140
126k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
126k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
126k
      f(status);
143
126k
      --num_scheduled_;
144
126k
    }, time);
void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)::operator()(long long, yb::Status const&) const
Line
Count
Source
140
86
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
86
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
86
      f(status);
143
86
      --num_scheduled_;
144
86
    }, time);
catalog_manager.cc:void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)::operator()(long long, yb::Status const&) const
Line
Count
Source
140
4.18k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
4.18k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
4.18k
      f(status);
143
4.18k
      --num_scheduled_;
144
4.18k
    }, time);
catalog_manager.cc:void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(long long, yb::Status const&)::operator()(long long, yb::Status const&) const
Line
Count
Source
140
237k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
237k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
237k
      f(status);
143
237k
      --num_scheduled_;
144
237k
    }, time);
145
393k
  }
void yb::rpc::ScheduledTaskTracker::Schedule<yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&)>(yb::tserver::PgClientServiceImpl::Impl::ScheduleCheckExpiredSessions(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)::'lambda'(yb::Status const&) const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
133
143k
  void Schedule(const F& f, std::chrono::steady_clock::time_point time) {
134
143k
    Abort();
135
143k
    if (++num_scheduled_ < 0) { // Shutting down
136
0
      --num_scheduled_;
137
0
      return;
138
0
    }
139
143k
    last_scheduled_task_id_ = scheduler_->Schedule(
140
143k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
143k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
143k
      f(status);
143
143k
      --num_scheduled_;
144
143k
    }, time);
145
143k
  }
void yb::rpc::ScheduledTaskTracker::Schedule<std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> >(std::__1::__bind<void (yb::consensus::RaftConsensus::*)(yb::Status const&), yb::consensus::RaftConsensus*, std::__1::placeholders::__ph<1> const&> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
133
86
  void Schedule(const F& f, std::chrono::steady_clock::time_point time) {
134
86
    Abort();
135
86
    if (++num_scheduled_ < 0) { // Shutting down
136
0
      --num_scheduled_;
137
0
      return;
138
0
    }
139
86
    last_scheduled_task_id_ = scheduler_->Schedule(
140
86
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
86
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
86
      f(status);
143
86
      --num_scheduled_;
144
86
    }, time);
145
86
  }
catalog_manager.cc:void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3>(yb::master::CatalogManager::ScheduleRefreshTablespaceInfoTask(bool)::$_3 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
133
5.06k
  void Schedule(const F& f, std::chrono::steady_clock::time_point time) {
134
5.06k
    Abort();
135
5.06k
    if (++num_scheduled_ < 0) { // Shutting down
136
2
      --num_scheduled_;
137
2
      return;
138
2
    }
139
5.06k
    last_scheduled_task_id_ = scheduler_->Schedule(
140
5.06k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
5.06k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
5.06k
      f(status);
143
5.06k
      --num_scheduled_;
144
5.06k
    }, time);
145
5.06k
  }
catalog_manager.cc:void yb::rpc::ScheduledTaskTracker::Schedule<yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20>(yb::master::CatalogManager::RebuildYQLSystemPartitions()::$_20 const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)
Line
Count
Source
133
245k
  void Schedule(const F& f, std::chrono::steady_clock::time_point time) {
134
245k
    Abort();
135
245k
    if (++num_scheduled_ < 0) { // Shutting down
136
84
      --num_scheduled_;
137
84
      return;
138
84
    }
139
245k
    last_scheduled_task_id_ = scheduler_->Schedule(
140
245k
        [this, f](ScheduledTaskId task_id, const Status& status) {
141
245k
      last_scheduled_task_id_.compare_exchange_strong(task_id, rpc::kInvalidTaskId);
142
245k
      f(status);
143
245k
      --num_scheduled_;
144
245k
    }, time);
145
245k
  }
146
147
  void Abort();
148
149
  void StartShutdown();
150
  void CompleteShutdown();
151
152
182
  void Shutdown() {
153
182
    StartShutdown();
154
182
    CompleteShutdown();
155
182
  }
156
157
 private:
158
  Scheduler* scheduler_ = nullptr;
159
  std::atomic<int64_t> num_scheduled_{0};
160
  std::atomic<rpc::ScheduledTaskId> last_scheduled_task_id_{rpc::kInvalidTaskId};
161
};
162
163
} // namespace rpc
164
} // namespace yb
165
166
#endif // YB_RPC_SCHEDULER_H