@ -23,6 +23,12 @@
|
||||
namespace doris {
|
||||
class MemTracker;
|
||||
|
||||
QueryThreadContext ThreadContext::query_thread_context() {
|
||||
DCHECK(doris::pthread_context_ptr_init);
|
||||
ORPHAN_TRACKER_CHECK();
|
||||
return {_task_id, thread_mem_tracker_mgr->limiter_mem_tracker()};
|
||||
}
|
||||
|
||||
AttachTask::AttachTask(const std::shared_ptr<MemTrackerLimiter>& mem_tracker,
|
||||
const TUniqueId& task_id) {
|
||||
ThreadLocalHandle::create_thread_local_if_not_exits();
|
||||
@ -30,6 +36,12 @@ AttachTask::AttachTask(const std::shared_ptr<MemTrackerLimiter>& mem_tracker,
|
||||
thread_context()->attach_task(task_id, mem_tracker);
|
||||
}
|
||||
|
||||
AttachTask::AttachTask(const std::shared_ptr<MemTrackerLimiter>& mem_tracker) {
|
||||
ThreadLocalHandle::create_thread_local_if_not_exits();
|
||||
signal::set_signal_task_id(TUniqueId());
|
||||
thread_context()->attach_task(TUniqueId(), mem_tracker);
|
||||
}
|
||||
|
||||
AttachTask::AttachTask(RuntimeState* runtime_state) {
|
||||
ThreadLocalHandle::create_thread_local_if_not_exits();
|
||||
signal::set_signal_task_id(runtime_state->query_id());
|
||||
@ -37,6 +49,13 @@ AttachTask::AttachTask(RuntimeState* runtime_state) {
|
||||
thread_context()->attach_task(runtime_state->query_id(), runtime_state->query_mem_tracker());
|
||||
}
|
||||
|
||||
AttachTask::AttachTask(const QueryThreadContext& query_thread_context) {
|
||||
ThreadLocalHandle::create_thread_local_if_not_exits();
|
||||
signal::set_signal_task_id(query_thread_context.query_id);
|
||||
thread_context()->attach_task(query_thread_context.query_id,
|
||||
query_thread_context.query_mem_tracker);
|
||||
}
|
||||
|
||||
AttachTask::~AttachTask() {
|
||||
thread_context()->detach_task();
|
||||
ThreadLocalHandle::del_thread_local_if_count_is_zero();
|
||||
|
||||
Reference in New Issue
Block a user