Update Doku aus Driversourcen
Change-Id: I455f0813b970151089b3dc1b8d9407eea323cdd1
diff --git a/doc/applied/clean_up b/doc/applied/clean_up
new file mode 100644
index 0000000..ed066bf
--- /dev/null
+++ b/doc/applied/clean_up
@@ -0,0 +1,51 @@
+SYNOPSIS
+ int <lfun> (int refcount)
+ int <closure>(int ref, object ob)
+
+DESCRIPTION
+ The hook H_CLEAN_UP defines a lfun or a closure used to clean
+ up an object. In older drivers this was hardwired to the lfun
+ clean_up().
+
+ The function is applied by the driver when an object hasn't been
+ used for a long time, to give it a chance to self-destruct. The
+ refcount <ref> passed as argument will be 0 for clone objects,
+ 1 for a simple loaded object, and greater when the object is
+ cloned or inherited by some existing object. It is recommended
+ not to self_destruct the object when the reference count is
+ greater than one.
+
+ By convention, a refcount < 0 is used if some other object
+ asks the called object to clean_up.
+
+ If the function is a closure, the second argument <ob> is the
+ object to clean up.
+
+ If the hook specifies a non-existing lfun, or if the call
+ returns 0, no further attempt to clean up this object will be made.
+
+ Returning a non-zero value is only recommended when the reason
+ why the object can't self-destruct is likely to vanish without
+ the object being touched, that is, when no local function is
+ called in it, (and in compat mode also when the object is not
+ being moved around).
+
+ A typical mud configuration defines the time to wait for
+ clean_up() so long that you can assert reset() has been
+ called since the object has been touched last time.
+
+EXAMPLES
+ A clone of /std/drink defines clean_up() to self-destruct if
+ it is empty, not carried a living being and not touched for
+ a long time.
+
+ A room that inherits /std/room defines clean_up() to
+ self-destruct if it is neither inherited nor used as a
+ blueprint, is empty and was not entered for a long time.
+
+HISTORY
+ Before 3.2.1, the function was hardwired to the lfun clean_up().
+
+SEE ALSO
+ reset(A), heart_beat(A), call_out(E), destruct(E), remove(A),
+ hooks(C)