4 ms·
Yeah, or I guess you could pass some object in: File BeginWrite(DeferTrustee t) { PleaseDeferMe<File> p = File.open(...); File f = t.defer p;
by adrianmonk 4y ago
Yeah, or I guess you could pass some object in:
File BeginWrite(DeferTrustee t) {
PleaseDeferMe<File> p = File.open(...);
File f = t.defer p;
f.Write(some header);
return f;
}
And then the caller would look something like:
void WriteWholeFile() {
DeferTrustee t = defer; // defers to the end of this function
File f = BeginWrite(t);
f.Write(the body);
}
Then you can still defer before anything else and avoid unsafe situations.