summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlmuHS <almuhs@github.com>2019-04-22 22:22:57 +0200
committerAlmuHS <almuhs@github.com>2019-04-22 22:22:57 +0200
commita3e8b6f7c240c7a3bf784570357790bf38a30a58 (patch)
tree4196edee3bb720f887a51f8fc948c9e3cc595806
parente646facce00ce85bc35df3e1c3bb78527041dcf7 (diff)
added mutex
-rw-r--r--i386/i386/mp_desc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/i386/i386/mp_desc.c b/i386/i386/mp_desc.c
index 6ac91216..e35750e9 100644
--- a/i386/i386/mp_desc.c
+++ b/i386/i386/mp_desc.c
@@ -276,6 +276,8 @@ cpu_setup(){
int i = 1;
while(i < ncpu && (machine_slot[i].running == TRUE)) i++;
+ kmutex_init(&mp_cpu_boot_lock);
+
unsigned apic_id = (((ApicLocalUnit*)phystokv(lapic_addr))->apic_id.r >> 24) & 0xff;
@@ -324,7 +326,10 @@ cpu_setup(){
break;
}
+ kmutex_lock(&mp_cpu_boot_lock, FALSE);
slave_main(i);
+ kmutex_unlock(&mp_cpu_boot_lock);
+
printf("launched first thread of cpu %d\n", i);