Berserk idleLoop in event handling?

John M McIntosh johnmci at smalltalkconsulting.com
Thu Jan 8 05:59:39 UTC 2004


Another 2, but this time I've added event 90 and 91 to capture the
WorldState>> doOneCycleFor: aWorld
	"Do one cycle of the interaction loop. This method is called  
repeatedly when the world is running.

This is a moderately private method; a better alternative is usually  
either to wait for events or to check the state of things from #step  
methods."

	Event 90
	self interCyclePause: (Preferences higherPerformance ifTrue: [1]  
ifFalse: [MinCycleLapse]).
	Event 91

MMmm really need a method to map the event types to the static  
comments. Guess I'll put one together before
the next message.

type 	90	time	 5327 intercycle pause: sleep start
type 	82	time	 5327

type 	7	time	 5358 key down in VM
type 	80	time	 5359
type 	82	time	 5360
type 	81	time	 5360
type 	81	time	 5360
type 	82	time	 5360 Assume EventSensor process wakes up

type 	10	time	 5360 EventSensor digests things.
type 	11	time	 5360
type 	12	time	 5361
type 	10	time	 5361
type 	11	time	 5361
type 	12	time	 5361
type 	10	time	 5361
type 	11	time	 5361
type 	12	time	 5362
type 	10	time	 5362
type 	11	time	 5362

type 	82	time	 5362 assume doOneCycleFor: process wakes up
type 	91	time	 5362 wake from  intercycle pause: (35 ms?)

type 	20	time	 5362 Morphic start Sensor nextEvent  {key down ....
type 	21	time	 5362
type 	22	time	 5362
type 	23	time	 5362
type 	24	time	 5363
type 	25	time	 5364

type 	20	time	 5364 key char
type 	21	time	 5364
type 	22	time	 5364
type 	23	time	 5365
type 	24	time	 5365
type 	25	time	 5440

type 	20	time	 5440 key up
type 	21	time	 5440
type 	22	time	 5440
type 	23	time	 5441
type 	24	time	 5441
type 	25	time	 5442

80ms that time...

Lets do one more

type 	10	time	 6579
type 	11	time	 6579
type 	82	time	 6579
type 	21	time	 6580
type 	81	time	 6594
type 	82	time	 6594
type 	81	time	 6594
type 	82	time	 6594
type 	90	time	 6594 sleep for intercycle pause
type 	82	time	 6595
type 	1	time	 6595  sleep in ioRelinquishProcessorForMicroseconds
type 	7	time	 6600 keyboard
type 	2	time	 6601 wake

{ I think this is a problem, the keyboard event I don't think awakes  
ioRelinquishProcessorForMicroseconds on the mac}
{ Will need to check this further }

type 	80	time	 6601
type 	82	time	 6601
type 	81	time	 6601
type 	81	time	 6601
type 	82	time	 6601
type 	10	time	 6602 event sensor chews on events.
type 	11	time	 6602
type 	12	time	 6602
type 	10	time	 6602
type 	11	time	 6602
type 	12	time	 6602
type 	10	time	 6602
type 	11	time	 6602
type 	12	time	 6603
type 	10	time	 6603
type 	11	time	 6603 Events on event sensor queue

took 2 ms.

type 	82	time	 6603
type 	91	time	 6603  wake from intercycle pause 8ms

type 	20	time	 6603 key down
type 	21	time	 6603
type 	22	time	 6603
type 	23	time	 6604
type 	24	time	 6604
type 	25	time	 6605

type 	20	time	 6605 key char
type 	21	time	 6605
type 	22	time	 6605
type 	23	time	 6605
type 	24	time	 6606
type 	25	time	 6625 digest 25 ms?

type 	20	time	 6625 key up
type 	70	time	 6625 IGC
type 	71	time	 6627 IGC end
type 	21	time	 6627
type 	22	time	 6627
type 	23	time	 6628
type 	24	time	 6628
type 	25	time	 6629

26 ms

This is better...
--
======================================================================== 
===
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