Starting worker does not work with no cache timeout
When the cache timeout is 0, the call to `pool.init` does not result in filled pool so the next call to `Pool.get` fails. This is because a transaction is started before calling `pool.init`. At start `Cache.sync` is called but it does not start a listener because `_clean_last` is not set. But `pool.init` fills the `_modules` with an empty list. Then `load_modules` starts a new transaction which calls `Cache.sync` which start a listener that trigger a `Pool.refresh` but this times it is actually refreshed because `_modules` is an empty list. The result is that at the end of the `pool.init`, the pool is not filled. This has been fixed by 30429d744d29 but older series are still affected.
issue