"Shawn O. Pearce" <spearce@xxxxxxxxxxx> writes: >> +static void try_to_free_from_threads(size_t size) >> +{ >> + int self = pthread_equal(read_mutex_owner, pthread_self()); >> + if (!self) >> + read_lock(); >> + release_pack_memory(size, -1); >> + if (!self) >> + read_unlock(); >> +} > > Is there any concern that a partially unset read_mutex_owner might > look like the current thread's identity? > > That is, memset() can be setting the bytes one by one. If the lock > is being released we might observe the current owner as ourselves > if we see only part of that release, and our identity is the same > as another thread, only with the lower-address bytes unset. Yuck. I hope that it doesn't mean we need another mutex to protect the owner data. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html