> On 13 Apr 2018, at 22:26, Alistair Grant <[email protected]> wrote: > > Hi Stef & Sven, > > On 13 April 2018 at 20:38, Stephane Ducasse <[email protected]> wrote: >> Hi >> >> I do not know if this is related to the OldStreamCleaningEffort but >> when I press store settings in the Settings browser I get a primitive >> failed. >> >> https://pharo.fogbugz.com/f/cases/21699/Store-settings-raise-a-DNU-primFlush > > > This is because the stream created in > SystemSettingsPersistence>>storeExactStoredSettings: is closed twice, > first in SettingsStonWriter>>store and then in > SystemSettingsPersistence>>storeExactStoredSettings:. > > Previous versions of file streams have allowed the stream #close to be > called multiple times, however ZnBufferedReadWriteStream doesn't allow > this. > > I think that since an already open stream is handed to > SettingsStonWriter, it shouldn't be closing the stream. That will > resolve this particular problem. > > It can also be argued that ZnBufferedReadWriteStream and co. should > allow streams to be closed multiple times for backward compatibility. > Sven?
Yes, OK, making #close idempotent is good. If we add #closed to ZnBufferedReadStream we can add a self closed ifFalse: [ .. ] guard in #close. > Cheers, > Alistair >
