Вы можете посмотреть примеры в
https://github.com/zlateski/zi_lib/tree/master/zi/concurrency/test
обратите внимание, что вам не нужно использовать zi :: run_fn, это вещь обратной совместимости, вы можете сказать:
zi :: thread t (zi :: bind (function_pointer, arg1, arg2, ...));
t.start ();
t.join ();
То же самое с zi :: task_manager :: simple или zi :: task_manager :: deque.
В тесте есть множество примеров использования классов / функций синхронизации