synchronized code