Async::ContainerSourceAsyncContainerKeyed

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