On May 1, 2009, at 12:59 AM, Michael Ash wrote:
"It locks up" is not a very useful description. Use the debugger and find out *where* it locks up.
I bracket calls to my KCLog function like so NSLog(@"about to call KCLog"); KCLog(@"testing 1, 2, 3"); NSLog(@"KCLog exe OK"); And what I see in the Xcode console is: about to call KCLog and that's it. It never make it to "KCLog exe OK"
I'll wager it's due to your manipulation of GUI objects in that last method you posted, though. GUI objects can *only* be manipulated from the main thread. You apparently know about this, because you dump your append calls onto the main thread using performSelectorOnMainThread:, but you fail to do this for a bunch of other calls, like length and scrollRangeToVisible:.
I could see where scrollRangeToVisible might cause a problem, but wouldn't "length" be OK since it is just reading a value, not changing it?
That entire method should really be on the main thread.
How do you do that? The console view is a singleton and is initialized in the AppController awake from nib method before anything else executes. Is that enough to insure it is running on the main thread? May seem like a silly question but I'm far from comfortable working with threads. I haven't used them enough to know where the pitfalls and gotchas lie.
Don't bother trying to bump individual calls to the GUI objects onto the main thread. At best you'll end up with tremendously confusing and somewhat inefficient code. At worst you'll end up with weird race conditions resulting from interleaving calls on different threads. Write a nice easy method that does the update on the main thread, and then invoke that whole method using performSelectorOnMainThread:. Mike _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/kentozier%40comcast.net This email sent to [email protected]
_______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
