Example #1
0
        /// <summary>
        /// Runs the provided <see cref="IParallelRunnable"/>.
        /// </summary>
        /// <param name="runnable">The <see cref="IParallelRunnable"/> to run.</param>
        public void Run(IParallelRunnable runnable)
        {
            Volatile.Write(ref _currentRunnable, runnable);

            _barrier?.StartWorkers();

            runnable.Run(_tasks.Length, _tasks.Length);

            _barrier?.WaitForWorkers();
        }
Example #2
0
        internal void Update(ASystem <T> system)
        {
            Volatile.Write(ref _currentSystem, system);

            _barrier?.StartWorkers();

            system.Update(_tasks.Length, _tasks.Length);

            _barrier?.WaitForWorkers();
        }