internal void PreDisposeCheck() { for (var i = 0; i < kMaxTypes; i++) { m_ComponentSafetyHandles[i].WriteFence.Complete(); } for (var i = 0; i < kMaxTypes * kMaxReadJobHandles; i++) { m_ReadJobFences[i].Complete(); } #if ENABLE_UNITY_COLLECTIONS_CHECKS for (var i = 0; i < kMaxTypes; i++) { var res0 = AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(m_ComponentSafetyHandles[i].SafetyHandle); var res1 = AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(m_ComponentSafetyHandles[i].BufferHandle); if (res0 == EnforceJobResult.DidSyncRunningJobs || res1 == EnforceJobResult.DidSyncRunningJobs) { Debug.LogError( "Disposing EntityManager but a job is still running against the ComponentData. It appears the job has not been registered with JobComponentSystem.AddDependency."); } } #endif }
public void PreDisposeCheck() { for (var i = 0; i < m_ComponentSafetyHandlesCount; i++) { var res0 = AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(m_ComponentSafetyHandles[i].SafetyHandle); var res1 = AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(m_ComponentSafetyHandles[i].BufferHandle); if (res0 == EnforceJobResult.DidSyncRunningJobs || res1 == EnforceJobResult.DidSyncRunningJobs) { Debug.LogError( "Disposing EntityManager but a job is still running against the ComponentData. It appears the job has not been registered with JobComponentSystem.AddDependency."); } } }
unsafe void EmergencySyncAllJobs() { for (int i = 0; i != m_JobDependencyForReadingManagersLength; i++) { int type = m_JobDependencyForReadingManagersPtr[i]; AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(m_SafetyManager.GetSafetyHandle(type, true)); } for (int i = 0; i != m_JobDependencyForWritingManagersLength; i++) { int type = m_JobDependencyForWritingManagersPtr[i]; AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(m_SafetyManager.GetSafetyHandle(type, true)); } }
internal static void EmergencySyncAllJobs(ref UnsafeIntList readingSystems, ref UnsafeIntList writingSystems, ComponentDependencyManager *dependencyManager) { for (int i = 0; i != readingSystems.Length; i++) { int type = readingSystems.Ptr[i]; AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(dependencyManager->Safety.GetSafetyHandle(type, true)); } for (int i = 0; i != writingSystems.Length; i++) { int type = writingSystems.Ptr[i]; AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(dependencyManager->Safety.GetSafetyHandle(type, true)); } }
private unsafe void EmergencySyncAllJobs() { int index = 0; while (true) { if (index == this.m_JobDependencyForReadingManagersLength) { for (int i = 0; i != this.m_JobDependencyForWritingManagersLength; i++) { int num4 = this.m_JobDependencyForWritingManagersPtr[i]; AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(this.m_SafetyManager.GetSafetyHandle(num4, true)); } return; } int type = this.m_JobDependencyForReadingManagersPtr[index]; AtomicSafetyHandle.EnforceAllBufferJobsHaveCompleted(this.m_SafetyManager.GetSafetyHandle(type, true)); index++; } }