Потратив немного времени на дальнейшие исследования, сегодня утром я отправился на поиски экспедиции в исходном коде OpenJDK.Оказывается, начинать с нативной реализации было неправильно;для этого есть механизм на чистом Java.
Класс sun.misc.SharedSecrets имеет статический метод getJavaLangAccess (), который возвращает объект с методом blockOn (Thread, sun.nio.ch.Interruptible),Это может быть использовано для того, чтобы Thread.interrupt () вызывал метод, предоставленный одним из моих собственных объектов, после чего я могу создать свой собственный объект Event прерывания, с помощью которого я могу гарантировать, что ожидания прерываются по мере необходимости.
Выполнение этого вводит зависимости от реализации Sun библиотеки классов Java, но, вероятно, в меньшей степени, чем копание в собственном состоянии JVM, чтобы попытаться извлечь дескриптор события, который он использует внутри.