해결1.
interrupt OFF
변경 후 처리
void
thread_sleep(int64_t wake_time ){
enum intr_level old_level;
old_level = intr_disable (); // 인터럽트 OFF 하기
...
struct thread * curr = thread_current();
...
intr_set_level (old_level);
}
해결2.
&(curr->elem)
을 비교하기 (현재 실행중인 스레드-> 블락된 스레드)
list_insert_ordered(&sleep_list, &(thread_current ()->elem), compare_priority, NULL);
# list_insert_ordered : sleep_list 안에 elem 을 넣을 때, 비교 함수를 사용해 정렬 삽입한다.