Тупик с NSOutputStream и URLSessionUploadTask (__psynch_mutexwait) - PullRequest
0 голосов
/ 15 октября 2018

Наше приложение OSX загружает несколько файлов на сервер, используя

func uploadTask(withStreamedRequest request: URLRequest) -> URLSessionUploadTask

Во время загрузки загрузка застревает.Некоторые файлы удается успешно загрузить, иногда больше файлов, а иногда - меньше.

Глядя на отладочный навигатор, я вижу, что мой поток потока показывает два вызова (один за другим; кадр 11 и кадр 5) на stream:handleEvent делегат, который указывает мне на строку кода, где я вызываю write: maxLength на NSOutputStrem, после __psynch_mutexwait в кадре 0. В этот момент приложение застревает, и сетевые вызовы не могут завершиться.

enter image description hereКто-нибудь сталкивался с этой проблемой?Любая помощь приветствуется, спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Похоже, что ваш обработчик получает сигнал дважды для записи в один и тот же поток.Добавьте проверку, что streamStatus имеет значение NSStreamStatusWriting, и верните его раньше.

...