Levente Uzonyi uploaded a new version of WebClient-Core to project The Trunk:
http://source.squeak.org/trunk/WebClient-Core-ul.115.mcz==================== Summary ====================
Name: WebClient-Core-ul.115
Author: ul
Time: 19 May 2018, 11:24:01.219213 am
UUID: 64708317-dee5-446d-8a1f-f71335246095
Ancestors: WebClient-Core-topa.114
Decrease the priority of connection handler processes from 60 to 30, to avoid potential image lockups.
=============== Diff against WebClient-Core-topa.114 ===============
Item was changed:
----- Method: WebServer>>asyncHandleConnectionFrom: (in category 'handling') -----
asyncHandleConnectionFrom: aSocket
"Handle an incoming connection asynchronously to avoid blocking the listener."
| handlerProcess |
handlerProcess := [
[ [ self handleConnectionFrom: aSocket ]
on: Error do: [ :ex | aSocket destroy ] ]
ensure: [
aSocket destroy.
mutex critical: [
+ "At this point handlerProcess is initialized, so it is safe to use that variable. Using Processor activeProcess is not possible, because this unwind block may be evaluated by another process. Doing this outside the #ensure: block is not safe."
+ connections remove: handlerProcess ifAbsent: nil ] ] ] newProcess.
- "If we get here, then handlerProcess is initialized, so it's safe to use that variable. Using Processor activeProcess is not possible, because this block may be evaluated by another process. Doing this outside the #ensure: block is not safe."
- connections remove: handlerProcess ifAbsent: [ ] ] ] ] newProcess.
mutex critical:[connections add: handlerProcess].
+ "Process priority has to be set to a lower level here, else it'll have lowIOPriority (60), and will block many important processes (UI, WeakArrayFinalization, etc.)"
+ handlerProcess
+ priority: Processor userBackgroundPriority;
+ resume!
-
- handlerProcess resume.
- !