chainlet.driver module¶
-
class
chainlet.driver.
ChainDriver
¶ Bases:
object
Actively drives chains by pulling them
This driver pulls all mounted chains via a single thread. This drives chains synchronously, but blocks all chains if any individual chain blocks.
-
mount
(*chains)¶ Add chains to this driver
-
run
()¶ Start driving the chain, block until done
-
-
class
chainlet.driver.
ConcurrentChainDriver
(daemon=True)¶ Bases:
chainlet.driver.ChainDriver
Actively drives chains by pulling them
This driver pulls all mounted chains via independent stacks. This drives chains concurrently, without blocking for any specific chain. Chains sharing elements may need to be synchronized explicitly.
Parameters: daemon (bool) – run chains as daemon
, i.e. do not wait for them to exit when terminating-
create_runner
(mount)¶
-
run
()¶ Start driving the chain, block until done
-
-
class
chainlet.driver.
MultiprocessChainDriver
(daemon=True)¶ Bases:
chainlet.driver.ConcurrentChainDriver
Actively drives chains by pulling them
This driver pulls all mounted chains via independent processes. This drives chains concurrently, without blocking for any specific chain. Chains sharing elements cannot exchange state between them.
Parameters: daemon (bool) – run processes as daemon
, i.e. do not wait for them to finish-
create_runner
(mount)¶
-
-
class
chainlet.driver.
ThreadedChainDriver
(daemon=True)¶ Bases:
chainlet.driver.ConcurrentChainDriver
Actively drives chains by pulling them
This driver pulls all mounted chains via independent threads. This drives chains concurrently, without blocking for any specific chain. Chains sharing elements may need to be synchronized explicitly.
Parameters: daemon (bool) – run threads as daemon
, i.e. do not wait for them to finish-
create_runner
(mount)¶
-