Thread.pass vs kernel context switch