HELP! Squeak is locking up! ( Re: Squeak becomes (almost) autistic???)

Bob Arning arning at charm.net
Fri Oct 27 03:52:25 UTC 2000


John,

There were some missing brackets in the #sendingRun, so it's a bit hard to be sure things are all in the right places. I would be inclined to get some measurements to try to see what's happening. Something like the following

sendingRun
...
stats _ Smalltalk at: #Q ifAbsentPut: [OrderedCollection new].
[true] whileTrue: [
	nextValue _ self sharedQ next.
	t _ [self processItemToSend: nextValue] timeToRun.
	stats add: {Time millisecondClockValue. t. 'sending'}.
	delay1 wait.
]

receivingRun
...
stats _ Smalltalk at: #Q ifAbsentPut: [OrderedCollection new].
[true] whileTrue: [
	(ss _ self cQ getConnectionOrNil) ifNotNil: [
		(ss waitForDataUntil: Socket standardDeadline) ifFalse: [self error: 'receive timeout'].
		bytesReceived _ ss receiveDataInto: ba.
		t _ [self processItemReceived: ba count: bytesReceived] timeToRun.
		stats add: {Time millisecondClockValue. t. 'receiving'}.
		ss closeAndDestroy.
	].
	delay1 wait
]


Then let it run for a while, take a look at Q and see how often data was sent and received and how long it took to do so.

WRT the priority question, these guys should probably be at a higher priority than the UI process, but until you figure out who is stealing all the cycles, I wouldn't worry about the priorities.

Cheers,
Bob





More information about the Squeak-dev mailing list