make chunk semaphore fair; fix semaphore delegation issue