use usleep instead of CFRunLoopInMode