Hi, thanks for this.
On 4/15/07, Prof Brian Ripley <[EMAIL PROTECTED]> wrote: > On Sun, 15 Apr 2007, Henrik Bengtsson wrote: > > > are there any (cross-platform) specs on what the saved filed is if > > save() is interrupted, e.g. by a user interrupt? It could be > > non-existing, empty, partly written, or completed. > > My understanding is that you cannot user interrupt compiled code unless it > is set up to check interrupts. Version 2 saves are done via the internal > saveToConn, and I don't see any calls to R_CheckUserInterrupt there. So > you only need to worry about user interrupts in the R code, and that has > an on.exit action to close the connection (which should be executed even > if you interrupt). Which suggests that the file will be > > non-existent > empty > complete > > and the first two depend on interrupting in the millisecond or less before > the compiled code gets called. I'll put it on my todo list to investigate how to make save() more robust against interrupts before calling the internal code. One option is to use tryCatch(). However, that does not handle too frequent user interrupts, e.g. if an interrupt is sent while in the "interrupt" call, that will interrupt the function. So, tryCatch() alone will only lower the risk for incomplete empty files. For data written to files, one alternative is to check for files of zero size in the on.exit() statement and remove such. /Henrik > > For other forms of interrupts, e.g. a Unix kill -9, the file state could > be anything. > > > -- > Brian D. Ripley, [EMAIL PROTECTED] > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > University of Oxford, Tel: +44 1865 272861 (self) > 1 South Parks Road, +44 1865 272866 (PA) > Oxford OX1 3TG, UK Fax: +44 1865 272595 > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel