On Mon, 18 Dec 2023 11:12:23 GMT, Joachim Kern <[email protected]> wrote:
>> src/hotspot/os/aix/porting_aix.cpp line 1097:
>>
>>> 1095: }
>>> 1096:
>>> 1097: pthread_mutex_lock(&g_handletable_mutex);
>>
>> You can make your life a lot easier by defining an RAII object at the start
>> of the file:
>>
>> struct TableLocker {
>> TableLocker() { pthread_mutex_lock(&g_handletable_mutex); }
>> ~TableLocker() { pthread_mutex_unlock(&g_handletable_mutex); }
>> };
>>
>> and just place this at the beginning of your two functions
>>
>> TableLocker lock:
>> ...
>>
>>
>> no need to manually unlock then, with the danger of missing a return.
>
> Great, thank you. This was one of the things I thought about, but was not
> sure, because I did not fully understood the MutexLocker class and the
> difference between Monitor and Mutex.
In hindsight, pthread mutex is the better choice anyway: it avoids dependencies
to the VM lifecycle (VM mutexes are only available after VM initialization, so
we could not call dlopen() before that).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16920#discussion_r1430380082