sema_up now unblocks the thread with the highest priority first. This is similar to next_thread_to_run