Hacker News new | ask | show | jobs
by pmjordan 4268 days ago
I've seen this behaviour, too. Could it be worse in Yosemite if you have iCloud Drive enabled? Of course, Apple ought to listen to their own advice of "never do I/O on the main thread" but then they don't bother with sandboxing their own App Store apps, either.
1 comments

I haven't tried iCloud Drive, though that should not be related as, assuming it works anything like iDisk did, it would keep the drive local and sync changes back and forth, rather than doing direct network loading/saving.

As for I/O, last time I checked, the Recent Documents list is actually being loaded on a background thread, but the main thread is where the UI for it has to be populated. Normally the list would be loaded before the main thread goes to access it, but when the load is blocked by e.g. my NAS waking up, the main thread ends up waiting on a semaphore.

It is rather unfortunate, since nothing I'm doing actually needs to see the recent documents list. And if you're going to say that the main thread should be able to simply indicate that it's still loading, and refresh the list when the load finishes, then I completely agree. But I would not be surprised to find that the relevant code here is many years old, possibly written in C, with no maintainers, and not having been touched in those many years, so there's probably little chance of it being fixed :/