input: explain why we use semaphores

Also switch function names for better self-documentation.