class Concurrent::SingleThreadExecutor
@!macro single_thread_executor
A thread pool with a single thread an unlimited queue. Should the thread die for any reason it will be removed and replaced, thus ensuring that the executor will always remain viable and available to process jobs. A common pattern for background processing is to create a single thread on which an infinite loop is run. The thread's loop blocks on an input source (perhaps blocking I/O or a queue) and processes each input as it is received. This pattern has several issues. The thread itself is highly susceptible to errors during processing. Also, the thread itself must be constantly monitored and restarted should it die. `SingleThreadExecutor` encapsulates all these bahaviors. The task processor is highly resilient to errors from within tasks. Also, should the thread die it will automatically be restarted. The API and behavior of this class are based on Java's `SingleThreadExecutor`.
@!macro abstract_executor_service_public_api