embedded snapshot: use condition variable