MacOSX Performance
John M McIntosh
johnmci at smalltalkconsulting.com
Mon Jan 24 15:27:50 UTC 2005
On Jan 24, 2005, at 4:55 AM, Karsten Wolf wrote:
> Hi John,
>
> Am 24.01.2005 um 08:38 schrieb John M McIntosh:
>
>> b) We crash when we get a thread race condition on the
>> runloopObserver FlushAllBuffers() which attempts to flush the window,
>> when we at the same time are attempting to flush the window. That
>> requires reading to solve.
>>
> could you tell more. Sounds like relating to the problems I have.
See __CFRunLoopDoObservers which runs the Observers, one of which is
doing FlushAllWindows,
Thread 0 (The main thread holding onto the UI runloop
1 com.apple.QD 0x91562b58 QDFlushPortBuffer + 0x114
2 com.apple.HIToolbox 0x927d1aac _FlushWindow + 0x138
3 com.apple.HIToolbox 0x927d2ad0 FlushAllWindows + 0x24
4 com.apple.HIToolbox 0x927d3f10
FlushAllBuffers(__CFRunLoopObserver*, CFRunLoopActivity, void*) + 0x34
5 com.apple.CoreFoundation 0x90191ca0 __CFRunLoopDoObservers +
0x194
6 com.apple.CoreFoundation 0x90195e74 CFRunLoopRunSpecific +
0x130
which crashs because on another thread we are running the interpreter.
Thread 2 Crashed:
0 <<00000000>> 0xf2d3de00 0 + 0xf2d3de00
1 com.apple.QD 0x91562b58 QDFlushPortBuffer + 0x114
2 org.squeak.Squeak 0x000d8434 ioShowDisplayOnWindow +
0x10d4
3 org.squeak.Squeak 0x000d8508 ioShowDisplay + 0x18
Most (I hope) UI stuff that happens in the interpreter thread, say
resize window, happens via special event requests to the UI thread
which was put in place
to handle AppleScript UI processing. Most UI things are not threadsafe.
More later
>
--
========================================================================
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
========================================================================
===
More information about the Squeak-dev
mailing list
|