Ejemplo n.º 1
0
    public void ResizeListWhileJobIsRunning()
    {
        var list = new NativeList <int>(Allocator.TempJob);

        list.Resize(42, NativeArrayOptions.UninitializedMemory);

        var setValuesJob = new GetArrayValuesJobParallel {
            array = list.AsDeferredJobArray()
        };
        var jobHandle = setValuesJob.Schedule(list, 3);

        Assert.Throws <InvalidOperationException>(() => list.Resize(1, NativeArrayOptions.UninitializedMemory));

        jobHandle.Complete();
        list.Dispose();
    }
Ejemplo n.º 2
0
    public void DeferredListCantBeDeletedWhileJobIsRunning()
    {
        var list = new NativeList <int>(Allocator.TempJob);

        list.Resize(42, NativeArrayOptions.UninitializedMemory);

        var setValuesJob = new GetArrayValuesJobParallel {
            array = list.AsDeferredJobArray()
        };
        var jobHandle = setValuesJob.Schedule(list, 3);

        Assert.Throws <InvalidOperationException>(() => list.Dispose());

        jobHandle.Complete();

        // Actually clean up memory to avoid DisposeSentinel complaint
        list.Dispose();
    }