IoUringAssmEngn: Add ~16ms bridged delay in finalize()
See the diff of the todo file within this patch for more details. This is to eliminate the possibility of having an in-flight async contin access metadata that we destroyed in finalize().
This commit is contained in:
@@ -37,23 +37,6 @@
|
||||
timeslice deferrals.
|
||||
|
||||
PcloudStimProducer::stop=>start() sequence:
|
||||
IoUringAssemblyEngine::finalize():
|
||||
I'm worried that calling PcloudStimProducer::stop() will leave
|
||||
in-flight sequences running which will remain alive even after
|
||||
the PcloudStimProducer object itself has been destroyed. This may
|
||||
be possible for IoUringAssmEngn because it has a running timer
|
||||
which may well just time out.
|
||||
* There's no reason to think that an in-flight IoUringAssmEngn
|
||||
assembly operation won't actually run until it times out. In
|
||||
fact, that's the standard case if you configure
|
||||
nDgramsPerFrame to be large enough.
|
||||
* This means that when we call IoUringAssmEngn::finalize(), an
|
||||
in-flight assembly could be going on, which isn't receiving
|
||||
any CQE notifications on the eventFd. Thus, that in-flight
|
||||
assembly op could plausibly timeout and resume execution
|
||||
after IoUringAssemEngn::finalize has completed.
|
||||
* We ought to do a bridged async timeout for the std::max()
|
||||
of all timeouts used by IoUringAssmEngn.
|
||||
|
||||
OpenClCollatingAndMeshingEngine::finalize():
|
||||
I'm also worried, though less so, about the OClCollMeshEngn: it's
|
||||
|
||||
Reference in New Issue
Block a user