[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Shawn W. <shawnw@s...> |
| Subject: | Re: [Caml-list] re: We should all be forking |
On Jun 6, 2007, at 2:28 AM, Oliver Bandel wrote: > > vfork is only (!!!) for a fork-exec combination. > > So, be aware: do not use vfork, if you don't exec right after it! > Don't use it even then! The only functions a vfork()ed child process can call are an exec*() one or _exit() (And then I think only execv() and execve() are safe). It can't return from the function vfork() was called in. It can't safely modify variables. In other words, it can't do any error handling to speak of if the exec fails. Sure, it's faster than a fork() (Even on a OS that does copy-on-right memory pages -- which most modern ones do) because you don't copy process table structures.... but it's way too fragile when something goes wrong. Which will happen, sooner or later. -- Shawn W. shawnw@speakeasy.org