PR: 286505
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
The logic appears fine. Out of curiosity, could you describe or provide some links to the context of this change? I think I saw several changes passing in rtld recently, but haven't followed.
| lib/libthr/thread/thr_rtld.c | ||
|---|---|---|
| 175–182 | That trick extends the write lock as seen by other threads until all the references from the locking thread have been released (write but also read). Could that be a problem? | |
See the referenced PR for the test case.
| lib/libthr/thread/thr_rtld.c | ||
|---|---|---|
| 175–182 | This is the expected behavior, how could it be different? The last reference releases the exclusive/write lock. | |
Thanks, I hadn't seen it above.
| lib/libthr/thread/thr_rtld.c | ||
|---|---|---|
| 175–182 | I was just wondering if that could be a problem in the context of the change. I do indeed see no other way without splitting _thr_rtld_lock_release() into 2 functions, one for the write lock and another one for read locks. | |