Hi:
See lock_hash in h_table.c:
Flowing lines of code do not guarantee atomicity and I think it is not safe:
-
atomic_get(&_tm_table->entries[i].locker_pid) != mypid
-
lock(&_tm_table->entries[i].mutex)
-
atomic_set(&_tm_table->entries[i].locker_pid, mypid)
Would you mind solving my confusion?
Best Regards!