It's not accurate to say that channel and mutex operations always call
futexsleep. Those operations will park the goroutine until it is
ready and the thread will enter the scheduler to find another
goroutine to run. futexsleep is used by a thread when there is no
goroutine available to schedule.
Ian