Is NSPasteboard thread-safe?

Posted by Joe on Stack Overflow See other posts from Stack Overflow or by Joe
Published on 2010-05-08T21:57:21Z Indexed on 2010/05/08 23:18 UTC
Read the original article Hit count: 370

Filed under:
|

Is it safe to write data to an NSPasteboard object from a background thread? I can't seem to find a definitive answer anywhere. I think the assumption is that the data will be written to the pasteboard before the drag begins.

Background:
I have an application that is fetching data from Evernote. When the application first loads, it gets the meta data for each note, but not the note content. The note stubs are then listed in an outline view. When the user starts to drag a note, the notes are passed to the background thread that handles getting the note content from Evernote. Having the main thread block until the data is gotten results in a significant delay and a poor user experience, so I have the [outlineView:writeItems:toPasteboard:] function return YES while the background thread processes the data and invokes the main thread to write the data to the pasteboard object. If the note content gets transferred before the user drops the note somewhere, everything works perfectly. If the user drops the note somewhere before the data has been processed... well, everything blocks forever. Is it safe to just have the background thread write the data to the pasteboard?

© Stack Overflow or respective owner

Related posts about cocoa

Related posts about multithreading