An alternative is to use a worker thread per set of logic data to avoid locks and then wrap it in classes to handle the jumping between the main loop and my thread. AsyncLinearExecutor code: https://garage.maemo.org/plugins/ggi...51e98721401e72 Code that uses AsyncLinearExecutor: https://garage.maemo.org/plugins/ggi...51e98721401e72