caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] different behaviour of Unix.fork on FreeBSD and Linux
@ 2003-05-19  9:35 Beck01, Wolfgang
  2003-05-19 10:03 ` Remi Vanicat
  2003-05-19 10:03 ` John Carr
  0 siblings, 2 replies; 3+ messages in thread
From: Beck01, Wolfgang @ 2003-05-19  9:35 UTC (permalink / raw)
  To: caml-list

Hello,

while recompiling an OCaml program developed under FrreeBSD
in Linux, I had some problems. 

What is the output of the following OCaml program?

open Printf
open Unix

let ftst() =
    let pid = fork()
    in
    if pid = 0 then
	printf "son\n"
    else begin
	printf "father\n";
	let _= wait()
	in
	()
    end
    
let aa =
    printf "test\n"

let main() =
printf "main\n";
    ftst()
;;

main()

On FreeBSD (OCaml 3.02), it is what I expected
  test
  main
  father
  son

However, on Linux (OCaml 3.06), it is

  test
  main
  son
  test    <-- why?
  main    <-- why?
  father

It looks as if the fork causes a second program initialization.
Strange that this doesn't result in an endless loop.

Any ideas?


--
Wolfgang Beck
T-Systems Nova GmbH 

-------------------
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-05-19 10:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-19  9:35 [Caml-list] different behaviour of Unix.fork on FreeBSD and Linux Beck01, Wolfgang
2003-05-19 10:03 ` Remi Vanicat
2003-05-19 10:03 ` John Carr

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).