On Mon, 18 Dec 2023 11:12:23 GMT, Joachim Kern <jk...@openjdk.org> 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