mdoc(7) police: markup and spelling fixes.
This commit is contained in:
+25
-15
@@ -61,32 +61,39 @@ Inheritance only effects children created by
|
||||
.Fn fork .
|
||||
It has no effect on
|
||||
.Fn exec .
|
||||
exec'd processes replace their address space entirely. This function also
|
||||
has no effect on the parent's address space (other then to potentially
|
||||
exec'd processes replace their address space entirely.
|
||||
This function also
|
||||
has no effect on the parent's address space (other than to potentially
|
||||
share the address space with its children).
|
||||
.Pp
|
||||
Inheritance is a rather esoteric feature largely superceeded by the
|
||||
MAP_SHARED feature of
|
||||
Inheritance is a rather esoteric feature largely superseded by the
|
||||
.Dv MAP_SHARED
|
||||
feature of
|
||||
.Fn mmap .
|
||||
However, it is possible to use
|
||||
.Fn minherit
|
||||
to share a block of memory between parent and child that has been mapped
|
||||
MAP_PRIVATE. That is, modifications made by parent or child are shared but
|
||||
.Dv MAP_PRIVATE .
|
||||
That is, modifications made by parent or child are shared but
|
||||
the original underlying file is left untouched.
|
||||
.Bl -tag -width MAP_HASSEMAPHORE
|
||||
.Bl -tag -width ".Dv INHERIT_SHARE"
|
||||
.It Dv INHERIT_SHARE
|
||||
This option causes the address space in question to be shared between
|
||||
parent and child. It has no effect on how the original underlying backing
|
||||
parent and child.
|
||||
It has no effect on how the original underlying backing
|
||||
store was mapped.
|
||||
.It Dv INHERIT_NONE
|
||||
This option prevents the address space in question from being inherited
|
||||
at all. The address space will be unmapped in the child.
|
||||
This option prevents the address space in question from being inherited
|
||||
at all.
|
||||
The address space will be unmapped in the child.
|
||||
.It Dv INHERIT_COPY
|
||||
This option causes the child to inherit the address space as copy-on-write.
|
||||
This option also has an unfortunate side effect of causing the parent
|
||||
address space to become copy-on-write when the parent forks. If the
|
||||
original mapping was MAP_SHARED, it will no longer be shared in the parent
|
||||
after the parent forks and there is no way to get the previous
|
||||
address space to become copy-on-write when the parent forks.
|
||||
If the original mapping was
|
||||
.Dv MAP_SHARED ,
|
||||
it will no longer be shared in the parent
|
||||
after the parent forks and there is no way to get the previous
|
||||
shared-backing-store mapping without unmapping and remapping the address
|
||||
space in the parent.
|
||||
.El
|
||||
@@ -114,9 +121,12 @@ and
|
||||
arguments.
|
||||
.El
|
||||
.Sh BUGS
|
||||
Once you set inheritance to MAP_PRIVATE or MAP_SHARED, there is no way to
|
||||
recover the originanl copy-on-write semantics short of unmapping and remapping
|
||||
the area.
|
||||
Once you set inheritance to
|
||||
.Dv MAP_PRIVATE
|
||||
or
|
||||
.Dv MAP_SHARED ,
|
||||
there is no way to recover the original copy-on-write semantics
|
||||
short of unmapping and remapping the area.
|
||||
.Sh SEE ALSO
|
||||
.Xr fork 2 ,
|
||||
.Xr madvise 2 ,
|
||||
|
||||
Reference in New Issue
Block a user