control concurrent access using semphore