This must be a dumb question, but I cannot find out the place for NativeContainers to dispose. If I don't understand it in a wrong way, the jobs might outlast the OnUpdate() in System (if doesn't call Complete in main-thread), but they will finish at the sync points. The problem is [DeallocateOnJobCompletion] doesn't work for all NativeContainer, so I've to find a place to dispose those dangling container when they finally end. I've tried to find a callback on sync-point for system to do some mem cleanup but found nothing. So my backup plans include: Use persistent alloc, so only clear() before use and dispose() at end. This is simple but it might hold the memory even the system doesn't run every frame. Use Monobehaviour to expose an event for all systems to subscibe, which fire at the end of frame or some safe points. Is there some obvious solution I'm missing here. I really prefer some callback from sync-points.