From 0231b4cf7d436647b5b044aec602e5cd22f1043f Mon Sep 17 00:00:00 2001 From: Kishikawa Katsumi Date: Sat, 30 Nov 2024 14:26:53 +0900 Subject: [PATCH] Fix example app --- .../FileBrowser (iOS)/DocumentViewController.swift | 7 ++++--- .../FileBrowser (macOS)/DocumentWindowController.swift | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Examples/FileBrowser/FileBrowser (iOS)/DocumentViewController.swift b/Examples/FileBrowser/FileBrowser (iOS)/DocumentViewController.swift index 00123b3..fc030e9 100644 --- a/Examples/FileBrowser/FileBrowser (iOS)/DocumentViewController.swift +++ b/Examples/FileBrowser/FileBrowser (iOS)/DocumentViewController.swift @@ -75,13 +75,14 @@ class DocumentViewController: UIViewController { let semaphore = self.semaphore let treeAccessor = self.treeAccessor let path = self.path - var fileReader = self.fileReader task = Task { - await server.appendRoute("*") { (request) in + await server.appendRoute("*") { [weak self] (request) in await semaphore.wait() defer { Task { await semaphore.signal() } } + guard let self else { return HTTPResponse(statusCode: .internalServerError) } + if fileReader == nil { fileReader = try await treeAccessor.fileReader(path: path) } @@ -136,7 +137,7 @@ class DocumentViewController: UIViewController { ) } - try await server.start() + try await server.run() } Task { @MainActor in diff --git a/Examples/FileBrowser/FileBrowser (macOS)/DocumentWindowController.swift b/Examples/FileBrowser/FileBrowser (macOS)/DocumentWindowController.swift index 9b5c5e2..c50e141 100644 --- a/Examples/FileBrowser/FileBrowser (macOS)/DocumentWindowController.swift +++ b/Examples/FileBrowser/FileBrowser (macOS)/DocumentWindowController.swift @@ -46,13 +46,14 @@ class DocumentWindowController: NSWindowController, NSWindowDelegate { let semaphore = self.semaphore let treeAccessor = self.treeAccessor let path = self.path - var fileReader = self.fileReader task = Task { - await server.appendRoute("*") { (request) in + await server.appendRoute("*") { [weak self] (request) in await semaphore.wait() defer { Task { await semaphore.signal() } } + guard let self else { return HTTPResponse(statusCode: .internalServerError) } + if fileReader == nil { fileReader = try await treeAccessor.fileReader(path: path) }