Skip to content

2.1.2

Latest

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 23 Apr 08:41
· 27 commits to main since this release
f8c58dc

Fixed

  • iOS readInPlace / readInPlaceBytes now marshal the post-download continuation back onto the main actor before invoking readInPlaceDocument / readInPlaceBinaryDocument. The 2.1.0 async rewrite of waitForDownloadCompletion inadvertently removed the DispatchQueue.main hop that the callback-based waiter guaranteed, letting UIDocument.open(completionHandler:) be called from the Swift cooperative pool. This restores the 1.2.2 invariant that UIDocument work runs under the main queue per Apple's completion-handler contract and avoids the _os_object_retain "Resurrection of an object" crash that motivated that fix.
  • macOS uploadFile, readInPlace, readInPlaceBytes, writeInPlace, writeInPlaceBytes now run their Task bodies on the main actor. Because the macOS FlutterMethodChannel is registered without a background task queue, FlutterResult must be invoked on the main thread; the previous Task { [self] in ... } blocks resumed on the cooperative pool after await, causing result(...) to be called off-main in preflight error paths.

Closes the threading concerns raised on #27, #26, and #25.

Full Changelog: 2.1.1...2.1.2