Marin Ramesa, le Thu 12 Dec 2013 18:27:04 +0100, a écrit : > --- a/kern/lock.h > +++ b/kern/lock.h > @@ -94,7 +94,10 @@ extern void check_simple_locks(void); > /* > * Do not allocate storage for locks if not needed. > */ > -#define decl_simple_lock_data(class,name) > +struct l {};
Use a better name than just "l" :) > diff --git a/kern/sched_prim.c b/kern/sched_prim.c > index c06cd77..71f32c5 100644 > --- a/kern/sched_prim.c > +++ b/kern/sched_prim.c > @@ -228,6 +228,8 @@ void assert_wait( > thread_t thread; > #if MACH_SLOCKS > simple_lock_t lock; > +#else /* MACH_SLOCKS */ > + decl_simple_lock_data( , lock); This is not the same: simple_lock_t is a pointer. It'd be better to just find a way to use decl_simple_lock_data for this. decl_simple_lock_data( , *lock); would probably just work as expected. > index 8fe3672..67067cf 100644 > --- a/kern/task.c > +++ b/kern/task.c > @@ -769,7 +769,7 @@ kern_return_t task_info( > event_info->cow_faults = task->cow_faults; > event_info->messages_sent = task->messages_sent; > event_info->messages_received = task->messages_received; > - task_unlock(&task); > + task_unlock(task); Err, this is not the same at all, while task_lock is still using &task. Either both need the fix, or none. Samuel