From: Ben Pfaff Date: Sat, 12 Feb 2011 18:04:27 +0000 (-0800) Subject: thread: Do not disable interrupts unnecessarily while initializing stack. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b801a69f8e0c2c4ef7e32a2476786f80f433b8e;p=pintos-anon thread: Do not disable interrupts unnecessarily while initializing stack. Reported by Francis Russell . --- diff --git a/src/threads/thread.c b/src/threads/thread.c index d68c123..87f22b8 100644 --- a/src/threads/thread.c +++ b/src/threads/thread.c @@ -171,7 +171,6 @@ thread_create (const char *name, int priority, struct switch_entry_frame *ef; struct switch_threads_frame *sf; tid_t tid; - enum intr_level old_level; ASSERT (function != NULL); @@ -184,11 +183,6 @@ thread_create (const char *name, int priority, init_thread (t, name, priority); tid = t->tid = allocate_tid (); - /* Prepare thread for first run by initializing its stack. - Do this atomically so intermediate values for the 'stack' - member cannot be observed. */ - old_level = intr_disable (); - /* Stack frame for kernel_thread(). */ kf = alloc_frame (t, sizeof *kf); kf->eip = NULL; @@ -204,8 +198,6 @@ thread_create (const char *name, int priority, sf->eip = switch_entry; sf->ebp = 0; - intr_set_level (old_level); - /* Add to run queue. */ thread_unblock (t);