[Pharo-project] #& in Socket >> #waitForSendDoneFor:

Levente Uzonyi leves at elte.hu
Tue Nov 9 07:30:52 CET 2010

On Tue, 9 Nov 2010, Philippe Marschall wrote:

> Hi
> I have a case where the #& in Socket >> #waitForSendDoneFor: shows up in
> a tally (see attachment). I'm able to push about 1 Mbyte/s more when I
> replace that with #and:. So my question is this really needed or should
> I file a bug and send a patch?

I "fixed" this once by for Squeak, but I didn't push this change. Here's 
the boolean expression:

 	(sendDone := self primSocketSendDone: socketHandle) not and: [
 		self isConnected and: [
 		"Connection end and final data can happen fast, so test in this order"
 		Time millisecondClockValue < deadline] ]

This refactoring saves one #isConnected send which may not be significant.

The appearence of #& in MessageTally may be just false measurement. IIRC 
with the current VMs the time spent in primitives are added to the next 
real message send (for performance reasons), which means that the 
#primSocketConnectionStatus: from #isConnected may be showing up there. 
Let me know if this change helps.


> This is Pharo 1.1.1 BTW.
> Cheers
> Philippe

More information about the Pharo-project mailing list