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]

Reply via email to