PSA: Don't start a second NSXMLParser on the same thread where another NSXMLParser is already running, or you will have a bad time.
@mjtsai You can use a serial queue, but not concurrent, for that reason.
NSXMLDoc/Element: Probably the same story; haven't looked deeply.
-
-
@mjtsai Actually, concurrent may be fine. Not like GCD is going to call you twice at the same time on the same thread. - View other replies
-
@boredzo You can't ensure that they won't be interleaved on the same thread. But it's OK, I guess, since not called from a callback. -
@mjtsai I don't know of a circumstance where GCD would call you on some thread while that thread is already doing something. - View other replies
-
@boredzo If there were per-thread state, I could not use separate queues per document. But it's moot since you say documents are fine. -
@mjtsai There is per-thread state, which is the problem. But only during parsing.
-
-
-
@boredzo So the docs have been wrong all these years? Do I always have to use a child thread, to avoid colliding with Cocoa on main thread? - View other replies
-
@mjtsai The docs aren't wrong as such, just incomplete. (The other half is buried in the 10.8 RN.) -
@boredzo 10.8 RN only mention a problem with reentrancy. Implies that separate parsers/documents are OK if called from same parent method. -
@mjtsai That's correct. Parsing is synchronous, so the first parse will finish before the second starts.
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Petrifying Horror
Michael Tsai