[concurrency-interest] The code example in onSpinWait() Javadoc

Roman Leventov leventov.ru at gmail.com
Thu Nov 14 09:46:14 EST 2019


Thread.onSpinWait()'s Javadoc has the following code example:

     class EventHandler {
         volatile boolean eventNotificationNotReceived;
         void waitForEventAndHandleIt() {
             while ( eventNotificationNotReceived ) {
                 java.lang.Thread.onSpinWait();
             }
             readAndProcessEvent();
         }

         void readAndProcessEvent() {
             // Read event from some source and process it
              . . .
         }
     }

Which doesn't seem to me as the best practice of using Thread.onSpinWait().

Thread.onSpinWait() is used in a very few classes in JDK itself, even
compared to other low-level mechanisms such as LockSupport.park/unpark.
It's hard to use it right. Cf. a recent thread "Low-latency pause in JDK"
in this mailing list.

Maybe, in this case, it's better to not provide any usage example than to
provide such half-baked/"context and caveats" example, to prevent users
from copying this pattern from the highly visible Thread class's Javadocs?

Expert users, the target audience for this method, unlikely benefit from
the present example either.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20191114/0b192a53/attachment.html>


More information about the Concurrency-interest mailing list