English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] file close bug?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-06-27 (16:21)
From: skaller <skaller@u...>
Subject: [Caml-list] file close bug?
The following code has worked for some time:

try (* to write Marshalled parse tree out *)
  let x = open_out_bin pf in
  Marshal.to_channel x (this_version,sts) [];
  close_out x
with _ -> () (* can't write, don't worry *)

Now, I have modified my program to use some specialised
hashtable types using address comparisons on part of the keys.
My largest test case now fails to terminate (weird!, it worked
before with polymorphic comparison ..) but I can kill it with Ctrl-C.

What's weird is that if I rerun it, it tries to reload
the Marshalled data above, and gets an End_of_file error,
indicating the whole file was not written out. 

However,when I run another program which doesn't get up to 
the use of the new hashtbles, and so terminates, the whole
file *is* being correctly written out (by the same piece of code).

This looks like a flushing/closing problem in Ocaml?
[Just because the program aborted should not prevent
a *closed* file's buffers being written to disk ..]

There's been some talk about this in other circumstances?
Is this a known problem?

John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners