class Keyed
Tracks a key/value pair such that unmarked keys can be identified and cleaned up. This helps implement persistent processes that start up child processes per directory or configuration file. If those directories and/or configuration files are removed, the child process can then be cleaned up automatically, because those key/value pairs will not be marked when reloading the container.
Definitions
def initialize(key, value)
Initialize the keyed instance
Signature
-
parameter
key
Object
The key.
-
parameter
value
Object
The value.
Implementation
def initialize(key, value)
@key = key
@value = value
@marked = true
end
attr :key
Signature
-
attribute
Object
The key value, normally a symbol or a file-system path.
attr :value
Signature
-
attribute
Object
The value, normally a child instance.
def marked?
Signature
-
returns
Boolean
True if the instance has been marked, during reloading the container.
Implementation
def marked?
@marked
end
def mark!
Mark the instance. This will indiciate that the value is still in use/active.
Implementation
def mark!
@marked = true
end
def clear!
Clear the instance. This is normally done before reloading a container.
Implementation
def clear!
@marked = false
end
def stop?
Stop the instance if it was not marked.
Signature
-
returns
Boolean
True if the instance was stopped.
Implementation
def stop?
unless @marked
@value.stop
return true
end
end