splitter try with semaphore