thread sync: semaphore
Merge branch 'develop'