Bob,
You have Processes (plural?) running the models and putting data into the queue. Then you have a Process taking it out and sending it through a socket. And squeak gets real slow. Then you kill all the model processes and everything is back to normal speed.
Right so far?
Yes, you've got it.
So I would try: - leave the model processes running and kill the sending process. How is it now? - take a look at the model processes. What are they doing?
The models ALSO have a Process associated them. The same as the Daemon #receivingRun and #sendingRun - an infinite loop with a 1 second Delay at the bottom. They are also created via a #fork.
Do they have Delays periodically?
See above.
Do they wait on some other resource?
Nope, the simple take Events of the EventQueue (a Heap) and execute them - part of a Model's logic (the Event handlers).
Do they yield?
Nope, they use Delays (1 second).
Are they at the same priority as the UI and the sending process? - have you tried this with the sending and receiving images on separate machines yet?
I assume they have a priority of 4 if I read the #fork logic correctly.
squeak-dev@lists.squeakfoundation.org