Eliot Miranda uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-eem.173.mcz==================== Summary ====================
Name: Network-eem.173
Author: eem
Time: 29 February 2016, 7:14:37.642865 pm
UUID: ea895f60-b473-4bd3-95b3-9dca79beeb9e
Ancestors: Network-eem.172
If preemption does not yield then Socket>>sendData:count: cannot simply spin while failing to send any data. It must at least yield (but why does it not check for errors?).
=============== Diff against Network-eem.172 ===============
Item was changed:
----- Method: Socket>>sendData:count: (in category 'sending') -----
sendData: buffer count: n
+ "Send the amount of data from the given buffer."
+ | sent totalSent |
+ totalSent := 0.
+ [totalSent < n] whileTrue:
+ [sent := self sendSomeData: buffer startIndex: totalSent+1 count: n-totalSent.
+ totalSent := totalSent + sent.
+ sent = 0 ifTrue: "If no data was sent don't just sit here spinning hard..."
+ [Processor yield]].!
- "Send the amount of data from the given buffer"
- | sent |
- sent := 0.
- [sent < n] whileTrue:[
- sent := sent + (self sendSomeData: buffer startIndex: sent+1 count: (n-sent))].!