Skip to content

Commit edec970

Browse files
committed
workshop/Operator: move code to InitControl()
1 parent 7744761 commit edec970

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

src/workshop/Operator.cxx

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,25 @@ WorkshopOperator::InitLog(std::size_t max_log_buffer,
109109
return std::move(stderr_w);
110110
}
111111

112+
inline UniqueSocketDescriptor
113+
WorkshopOperator::InitControl()
114+
{
115+
assert(!control_channel);
116+
117+
if (!plan->control_channel)
118+
return {};
119+
120+
auto [control_parent, control_child] = CreateSocketPair(SOCK_SEQPACKET);
121+
control_parent.SetNonBlocking();
122+
123+
WorkshopControlChannelHandler &handler = *this;
124+
control_channel = std::make_unique<WorkshopControlChannelServer>(event_loop,
125+
std::move(control_parent),
126+
handler);
127+
128+
return std::move(control_child);
129+
}
130+
112131
static void
113132
PrepareChildProcess(PreparedChildProcess &p, const char *plan_name,
114133
const Plan &plan,
@@ -168,18 +187,7 @@ WorkshopOperator::Start2(std::size_t max_log_buffer,
168187

169188
/* create control socket */
170189

171-
UniqueSocketDescriptor control_child;
172-
if (plan->control_channel) {
173-
UniqueSocketDescriptor control_parent;
174-
std::tie(control_parent, control_child) = CreateSocketPair(SOCK_SEQPACKET);
175-
176-
control_parent.SetNonBlocking();
177-
178-
WorkshopControlChannelHandler &handler = *this;
179-
control_channel = std::make_unique<WorkshopControlChannelServer>(event_loop,
180-
std::move(control_parent),
181-
handler);
182-
}
190+
const auto control_child = InitControl();
183191

184192
PreparedChildProcess p;
185193
PrepareChildProcess(p, job.plan_name.c_str(), *plan,

src/workshop/Operator.hxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ private:
117117

118118
UniqueFileDescriptor InitLog(std::size_t max_log_buffer,
119119
bool enable_journal);
120+
UniqueSocketDescriptor InitControl();
120121

121122
void SetCgroup(FileDescriptor fd) noexcept;
122123

0 commit comments

Comments
 (0)