Software-level synchronization