[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[MIT-Scheme-devel] disk-restore
From: |
Taylor R Campbell |
Subject: |
[MIT-Scheme-devel] disk-restore |
Date: |
Tue, 10 May 2011 15:31:50 +0000 |
User-agent: |
IMAIL/1.21; Edwin/3.116; MIT-Scheme/9.1 |
Lots of things are broken about DISK-RESTORE. For example, the system
fails to free external strings. This may apply to lots of other
things that are GC-finalized, which will probably increase if the
FFI's use increases. If anything goes wrong in the LOAD-BAND
primitive, the system is probably in a wrecked state because it will
already have triggered the BEFORE-EXIT event, even though LOAD-BAND
itself is careful to be ready to back out until it is ready to commit.
And of course Edwin can't be saved and restored.
I think the easiest way to deal with most of this (other than saving
and restoring Edwin) would probably be to add a band load daemon which
would be run in its own little interpreter loop like edwin_auto_save
and delete_temp_files, between the lines
ENTER_CRITICAL_SECTION ("band load");
(state->no_return_p) = true;
in read_band_file in fasload.c, or possibly after claiming the point
of no return. This band load daemon would trigger the BEFORE-EXIT
event, which could then safely run all GC finalizers.
Another approach would be just to use exec.
Does anyone care much about DISK-RESTORE? Is it worth putting effort
into fixing?
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [MIT-Scheme-devel] disk-restore,
Taylor R Campbell <=