From bf0aa43b76eefec87bc4b7d8d81f2b60f8cdde8d Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 16 Sep 2021 18:41:54 -0400 Subject: [PATCH] Fix dispatch group and not all columns loading --- SilicaViewer/Document.swift | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/SilicaViewer/Document.swift b/SilicaViewer/Document.swift index 165074e..a896299 100644 --- a/SilicaViewer/Document.swift +++ b/SilicaViewer/Document.swift @@ -158,8 +158,6 @@ class Document: NSDocument { let queue = DispatchQueue(label: "imageWork") DispatchQueue.concurrentPerform(iterations: chunkPaths.count) { (i: Int) in - dispatchGroup.enter() - guard let threadArchive = Archive(data: self.data!, accessMode: Archive.AccessMode.read) else { return } @@ -212,12 +210,10 @@ class Document: NSDocument { let image = NSImage(cgImage: cgimage, size: NSZeroSize) - queue.async(flags: .barrier) { + queue.async(group: dispatchGroup) { layer.data.chunks[i].image = image layer.data.chunks[i].x = x layer.data.chunks[i].y = y - - dispatchGroup.leave() } } @@ -251,7 +247,7 @@ class Document: NSDocument { info.height = height! columns = Int(ceil(Float(info.width) / Float(info.tileSize))) - rows = Int(ceil(Float(info.height) / Float(info.tileSize))) + rows = Int(ceil(Float(info.height) / Float(info.tileSize))) + 1 // TODO: lol why if info.width % info.tileSize != 0 { remainderWidth = (columns * info.tileSize) - info.width