Describe the actions taken by thread library to context switch between user level threads?