public void Update()
        {
            var handles = new List <VoxelChunk <TIndexer> .FinalizeBuild>();

            System.Diagnostics.Stopwatch watch = null;

            //Schedule all rebuild jobs
            foreach (ChunkPos pos in chunks.Keys)
            {
                VoxelChunk <TIndexer> chunk = chunks[pos];

                if (chunk.mesh == null || chunk.NeedsRebuild)
                {
                    if (watch == null)
                    {
                        watch = System.Diagnostics.Stopwatch.StartNew();
                    }
                    handles.Add(chunk.ScheduleBuild());
                }
            }

            //Wait and finalize jobs
            foreach (var handle in handles)
            {
                handle();
            }

            if (watch != null)
            {
                watch.Stop();

                string text = "Polygonized " + handles.Count + " voxel chunks in " + watch.ElapsedMilliseconds + "ms. Avg: " + (watch.ElapsedMilliseconds / (float)handles.Count) + "ms.";
                Debug.Log(text);
            }
        }