mac carbon VM 3.8.12b1 pending

John M McIntosh johnmci at smalltalkconsulting.com
Mon Apr 10 06:50:01 UTC 2006


This VM contains a major functional change to how UI events are  
processed.

3.8.12b1

When the VM was converted to carbon events I decided to place the  
interpreter() thread on a pthread. However over the years it became  
apparent this was an issue because many UI calls needed to run on the  
main UI thread, versus a sub pthread. To solve this I added the  
getUIToLock() call which locked the UI, actually it would setup a  
custom UI event and block until the UI thread did the callback. This  
worked well until the Sophie team started to experiment with  
Quicktime via FFI and we discovered that quicktime FFI calls needed  
to be on the main UI thread to avoid a crash. Thus in early 2006 we  
altered the FFI plugin so that it would call getUIToLock when it  
makes the FFI function call (the 3.8.11 series). This worked well  
until the Croquet folks complained that this caused Croquet to crash  
in glEnable. Further investigation showed that mixing Open/GL calls  
between pthreads caused a serious issue. Therefore I altered the VM  
to run under the main UI thread and poll for events. Polling is done  
before each callback looking for UI events and in the flush screen  
logic which is invoked about every 1/60 of a second to ensure pending  
screen updates are sent to the screen.

	Needless to say people should confirm their applications work as  
expected, the UI performance isn't greatly affected and overall  
performance is roughly the same.

	I'll note one nasty issue is that if you pull down a native mac menu  
the VM stops running, we'll see what we can do about that, but it may  
take a while.
	However usage of the mac menu bar is limited.


Look for the VM to the usual place.

http://www.smalltalkconsulting.com/squeak.html


PS I'll note the 3.8.11x series of VMs will not work with Croquet on  
powerpc, mind it does on MacIntel.


--
======================================================================== 
===
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