[jdk17] RFR: 8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX [v4]
Xin Liu
xliu at openjdk.java.net
Thu Jul 8 01:23:49 UTC 2021
On Thu, 8 Jul 2021 00:23:17 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> Xin Liu has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Use the new API signal_overflow of semaphore
>>
>> This patch handles overflow scenerios for Posix and Windows.
>> MacOS platform doesn't have any error so we ignore it.
>
> src/hotspot/share/runtime/semaphore.hpp line 56:
>
>> 54:
>> 55: // Ignore error of overflow
>> 56: void signal_overflow(uint count = 1) {
>
> I'm a bit unsure about how to name and describe this given that the overflow check only relates to debug builds - in a product build both `signal` and `signal_overflow` are identical.
>
> I had missed previously that the `ignore_overflow` parameter was only in the impl API not the main public API.
Thanks you for reviewing this change.
The reason we only had ignore_overflow in impl API because I defined my own platform-independent Semaphore class, aka. AsyncLogSemaphore in previous revision. I changed type of _sem from Sempahore to AsyncLogSemaphore. I "overloaded" signal(uint count) in that way so I don't pollute "public API".
> I don't think this is necessary, just call wait(1, true) where needed.
I think your opinion is that it's not necessary. how about I just add a second parameter ignore_overflow to Semaphore::signal with the default value = false?
-------------
PR: https://git.openjdk.java.net/jdk17/pull/216
More information about the hotspot-runtime-dev
mailing list