Jan Kiszka wrote: > @@ -230,18 +230,20 @@ static inline int mutex_save_count(xnthr > > mutex = shadow->mutex; > > - if (clear_claimed(xnarch_atomic_intptr_get(mutex->owner)) != cur) > + if (clear_claimed(xnarch_atomic_get(mutex->owner)) != > + xnthread_handle(cur)) > return EPERM; > > *count_ptr = shadow->lockcnt; > > - if (likely(xnarch_atomic_intptr_cmpxchg(mutex->owner, cur, NULL) == > cur)) > + if (likely(xnarch_atomic_cmpxchg(mutex->owner, cur, XN_NO_HANDLE) == > + xnthread_handle(cur))) > return 0; > > owner = xnsynch_wakeup_one_sleeper(&mutex->synchbase); > - xnarch_atomic_intptr_set > - (mutex->owner, > - set_claimed(owner,xnsynch_nsleepers(&mutex->synchbase))); > + xnarch_atomic_set(mutex->owner, > + set_claimed(xnthread_handle(owner), > + xnsynch_nsleepers(&mutex->synchbase)));
Ok. Can we avoid xnthread_handle() everywhere by storing its result in a local variable and reusing this local variable, here and in the other functions where xnthread_handle is used multiple times ? -- Gilles. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core