public void TestTempJobAllocationAndDisposal()
    {
        n.AllocateAndAutoDispose(ref array1, 10, Allocator.TempJob);
        n.AllocateAndAutoDispose(ref array2, 10, Allocator.TempJob);

        n.ProcessDisposables(new Unity.Jobs.JobHandle());
        n.DisposeTempJobs();
        Assert.Throws <InvalidOperationException>(array1.Dispose);
        Assert.Throws <InvalidOperationException>(array2.Dispose);
    }
Example #2
0
        protected sealed override void OnUpdate()
        {
            var jobHandle = new JobHandle();

            try
            {
                foreach (var componentGroup in ComponentGroups)
                {
                    jobHandle = JobHandle.CombineDependencies(componentGroup.GetDependency(), jobHandle);
                }
                jobHandle = OnUpdate(jobHandle);

                foreach (var componentGroup in ComponentGroups)
                {
                    componentGroup.AddDependency(jobHandle);
                }
            }
            finally
            {
                nativeManager.DisposeTempJobs();
                nativeManager.ProcessDisposables(jobHandle);
            }
        }