Skip to content

Commit 85d36f2

Browse files
voorkafacebook-github-bot
authored andcommitted
Assert dispatcher is never nullptr
Summary: Minor change after reading some code to review a different diff. We know the dispatcher is never null here, since we initialize it in `mcgen::init()`. Differential Revision: D63425864 fbshipit-source-id: 7c2541948f78c2d0611cefdd11da6eb14d626fda
1 parent 4273d1f commit 85d36f2

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

hphp/runtime/vm/jit/mcgen-async.cpp

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,10 @@ struct AsyncTranslationWorker
203203
using AsyncTranslationDispatcher = JobQueueDispatcher<AsyncTranslationWorker>;
204204
std::atomic<AsyncTranslationDispatcher*> s_asyncTranslationDispatcher;
205205

206-
AsyncTranslationDispatcher* asyncTranslationDispatcher() {
207-
return s_asyncTranslationDispatcher.load(std::memory_order_acquire);
206+
AsyncTranslationDispatcher& asyncTranslationDispatcher() {
207+
auto const dispatcher = s_asyncTranslationDispatcher.load(std::memory_order_acquire);
208+
assertx(dispatcher);
209+
return *dispatcher;
208210
}
209211
} // namespace
210212

@@ -238,12 +240,8 @@ void enqueueAsyncTranslateRequest(const RegionContext& ctx,
238240
show(ctx.sk)
239241
);
240242
} else {
241-
auto const dispatcher = asyncTranslationDispatcher();
242-
if (!dispatcher) {
243-
FTRACE(2, "Async jit threads are not ready\n");
244-
return;
245-
}
246-
dispatcher->enqueue(
243+
auto& dispatcher = asyncTranslationDispatcher();
244+
dispatcher.enqueue(
247245
AsyncRegionTranslationContext {ctx, currNumTranslations}
248246
);
249247
FTRACE(2, "Enqueued sk {} for jitting\n", show(ctx.sk));
@@ -253,12 +251,8 @@ void enqueueAsyncTranslateRequest(const RegionContext& ctx,
253251
void enqueueAsyncPrologueRequest(Func* func, int nPassed) {
254252
if (!func->atomicFlags().set(Func::Flags::LockedForPrologueGen)) {
255253
auto const p = std::make_shared<AsyncPrologueContext>(func, nPassed);
256-
auto const dispatcher = asyncTranslationDispatcher();
257-
if (!dispatcher) {
258-
FTRACE(2, "Async jit threads are not ready\n");
259-
return;
260-
}
261-
dispatcher->enqueue(AsyncPrologueContext {func, nPassed});
254+
auto& dispatcher = asyncTranslationDispatcher();
255+
dispatcher.enqueue(AsyncPrologueContext {func, nPassed});
262256
FTRACE(2, "Enqueued func {} for prologue generation\n", func->name());
263257
} else {
264258
FTRACE(2,

0 commit comments

Comments
 (0)