MCPcopy Create free account
hub / github.com/apache/arrow / Init

Method Init

cpp/src/arrow/util/cancel.cc:114–136  ·  view source on GitHub ↗

NOTE: shared_from_this() doesn't work from constructor

Source from the content-addressed store, hash-verified

112
113 // NOTE: shared_from_this() doesn't work from constructor
114 void Init() {
115 // XXX this pattern appears in several places, factor it out?
116 atfork_handler_ = std::make_shared<AtForkHandler>(
117 /*before=*/
118 [weak_self = std::weak_ptr<SignalStopState>(shared_from_this())] {
119 auto self = weak_self.lock();
120 if (self) {
121 self->BeforeFork();
122 }
123 return self;
124 },
125 /*parent_after=*/
126 [](std::any token) {
127 auto self = std::any_cast<std::shared_ptr<SignalStopState>>(std::move(token));
128 self->ParentAfterFork();
129 },
130 /*child_after=*/
131 [](std::any token) {
132 auto self = std::any_cast<std::shared_ptr<SignalStopState>>(std::move(token));
133 self->ChildAfterFork();
134 });
135 RegisterAtFork(atfork_handler_);
136 }
137
138 Status RegisterHandlers(const std::vector<int>& signals) {
139 std::lock_guard<std::mutex> lock(mutex_);

Callers 1

instanceMethod · 0.45

Calls 4

BeforeForkMethod · 0.95
ParentAfterForkMethod · 0.95
ChildAfterForkMethod · 0.95
RegisterAtForkFunction · 0.85

Tested by

no test coverage detected