У меня есть приложение, которое регулярно вызывает [[NSDocumentController sharedDocumentController] recentDocumentURLs]
для восстановления списка недавно открытых элементов. Некоторое время это работало хорошо, но недавно я получил отчет о том, что он зависает в системе пользователя:
11 -[NSDocumentController(NSPrivate) _recentDocumentURLsForKey:] + 271 (AppKit + 5903428) [0x7fff92ae5444] 1-11
11 -[__NSOperationInternal _waitUntilFinished:] + 131 (Foundation + 1060402) [0x7fff86a1ee32] 1-11
11 __psynch_cvwait + 10 (libsystem_kernel.dylib + 94046) [0x7fff8dec6f5e] 1-11
*11 psynch_cvcontinue + 0 (pthread + 30281) [0xffffff7f80e8d649] 1-11
Для пользователя, сообщившего об ошибке, это начало происходить после обновления до El Capitan — он регулярно загружает файлы из общих сетевых ресурсов, поэтому я предполагаю, что система блокирует вызов, пытаясь найти файлы. Оглядываясь вокруг, кажется, что проблема существует уже некоторое время: http://www.cocoabuilder.com/archive/cocoa/317137-thread-deadlock.html и http://ticket.macromates.com/show?ticket_id=F3058D68.
Проблема в том, что хотя несколько приложений сообщают, что проблема устранена, я не смог отследить фактическое исправление. Что было бы подходящим способом исправить это? Является ли выгрузка его в фоновый поток единственным подходящим решением, или я что-то упускаю?