3 ms·
The next email in that thread suggests using madvise() as well.
by ramidarigaz 12y ago
The next email in that thread suggests using madvise() as well.
- panzi 12y agoI'm a noob concerning all of this, but how would it be different to MADV_DONTFORK? Or why can't MADV_DONTFORK be used for the same task?
- simcop2387 12y agoMADV_DONTFORK ends up working a bit different, when the forked process tries to read the page it ends up as a segmentation fault because the page wasn't carried over. It can be made to work but that ends up more difficult since you have to trap that signal and be able to prove you aren't going to catch a real one. Adding something like INHERITZERO would end up giving you a new blank page which would be much nicer to deal with in the userspace.
- JoshTriplett 12y ago> MADV_DONTFORK ends up working a bit different, when the forked process tries to read the page it ends up as a segmentation fault because the page wasn't carried over. It can be made to work but that ends up more difficult since you have to trap that signal and be able to prove you aren't going to catch a real one. Doubly difficult from within library code that needs to work in arbitrary programs, and thus cannot mess with signal handling.