[squeak-dev] The Inbox: System-ct.1136.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Feb 6 18:50:11 UTC 2020
Christoph Thiede uploaded a new version of System to project The Inbox:
http://source.squeak.org/inbox/System-ct.1136.mcz
==================== Summary ====================
Name: System-ct.1136
Author: ct
Time: 6 February 2020, 7:50:02.954648 pm
UUID: 0a637557-d32d-9347-bc4b-4f2bb95a707d
Ancestors: System-cmm.1131
Make Smalltalk more robust against interruptions/timeouts during sources compilation
A popular example is a test case that compiles a lot of methods and then is terminated via timeout. See [1] for an example. This commit ensures that the changes file does not remain closed when the method is curtailed.
Before probably destroyed your image, now works:
[MCSnapshotResource mockPackage unload]
valueWithin: 1 seconds "you may need to adapt the limit to reproduce"
onTimeout: [].
[1] http://forum.world.st/BUG-MultiByteFileStream-Object-gt-gt-error-primGetPosition-failed-td5111181.html
=============== Diff against System-cmm.1131 ===============
Item was changed:
----- Method: SmalltalkImage>>forceChangesToDisk (in category 'sources, changes log') -----
forceChangesToDisk
"Ensure that the changes file has been fully written to disk by closing and re-opening it. This makes the system more robust in the face of a power failure or hard-reboot."
| changesFile |
changesFile := SourceFiles at: 2.
(changesFile isKindOf: FileStream) ifTrue: [
changesFile flush.
+ SecurityManager default hasFileAccess ifTrue: [
+ [changesFile close] ensure: [
+ changesFile open: changesFile name forWrite: true]].
+ changesFile setToEnd].!
- SecurityManager default hasFileAccess ifTrue:[
- changesFile close.
- changesFile open: changesFile name forWrite: true].
- changesFile setToEnd.
- ].
- !
More information about the Squeak-dev
mailing list
|