TextureShare Impl question

Hi!
We use Textureshare plugin to export game rt to external process, so far it works well.
But when I tried to read its source code, I cannot find the ID3D12CommandQueue->Signal() api call.
So, how does texture syncs the texture to other process? imagine this sieries:
ue process: WriteTexture → ChangeFrameNumber → (GPUTextureWriteComplete, 1)
capture process: FrameNumChanged->GetTextureReferenceFromUE → CopyTexture → (GPUCopyComplete, 2)
if 2 is completed BEFORE 1, capture process will get wrong data.

But in reality, it works.
so, am I missed something?

I’m using ue 4.27.2, textureshare d3d12.