Details

    • Type: New Feature
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: core-libs
    • Labels:
      None

      Description

      Overall issue for the design, implementation and test of VarHandles for JEP 193: Enhanced Volatiles.

      The implementation is integrated into the jdk9/dev repository.

      Any follow on work may, before integration into jdk9/dev, occur in the JDK 9 sandbox with the branch:

      $ hg clone http://hg.openjdk.java.net/jdk9/sandbox sandbox
      $ cd sandbox/
      $ sh ./get_source.sh
      $ sh ./common/bin/hgforest.sh up -r JEP-193-VarHandles-branch
      $ sh ./configure
      $ make images

      http://cr.openjdk.java.net/~psandoz/jdk9/varhandles/specdiff/overview-summary.html

        Attachments

          Issue Links

          1.
          VarHandles for instance fields Sub-task Resolved Paul Sandoz  
           
          2.
          VarHandles for static fields Sub-task Resolved Paul Sandoz  
           
          3.
          VarHandles for arrays Sub-task Resolved Paul Sandoz  
           
          4.
          VarHandles for ByteBuffers Sub-task Resolved Paul Sandoz  
           
          5.
          VarHandles for array views Sub-task Resolved Paul Sandoz  
           
          6.
          VarHandles API specification Sub-task Resolved Paul Sandoz  
           
          7.
          VarHandles unit tests Sub-task Resolved Paul Sandoz  
           
          8.
          VarHandles jcstress tests Sub-task Resolved Frank Yuan  
           
          9.
          Unsafe.getAcquire* and VarHandles.getAcquire Sub-task Resolved Aleksey Shipilev  
           
          10.
          MethodType[] VarHandle.types wastes memory Sub-task Resolved Paul Sandoz  
           
          11.
          Replace obj.getClass with Objects.requireNonNull Sub-task Resolved Aleksey Shipilev  
           
          12.
          C1 trouble in VarHandle.get tests Sub-task Resolved Aleksey Shipilev  
           
          13.
          C1 trouble in VarHandle.getObject tests Sub-task Resolved Aleksey Shipilev  
           
          14.
          Unsafe.setRelease/putOrdered* for all types Sub-task Resolved Aleksey Shipilev  
           
          15.
          VarHandle access methods should be marked with @HotspotIntrinsicCandidate Sub-task Resolved Aleksey Shipilev  
           
          16.
          Unsafe intrinsics overhaul for VarHandle.{getAcquire|setRelease} Sub-task Resolved Aleksey Shipilev  
           
          17.
          Introduce VH.{get|set}Relaxed, and rewire VH.{get|set} to use the default field access rules Sub-task Resolved Aleksey Shipilev  
           
          18.
          VH.{set|get}{Acquire|Release} for raw memory Sub-task Resolved Aleksey Shipilev  
           
          19.
          Add weak CAS, and acquire/release forms of CAS Sub-task Closed Aleksey Shipilev  
           
          20.
          C1 support for Unsafe.{getAcquire|setRelease} Sub-task Closed Aleksey Shipilev  
           
          21.
          VH.(get|set)Opaque implementations Sub-task Resolved Aleksey Shipilev  
           
          22.
          Better C1 handling for VarHandles.(get|set)Opaque Sub-task Closed Aleksey Shipilev  
           
          23.
          Proper implementation for VarHandle.compareAndExchange{Volatile, Acquire, Release} Sub-task Closed Aleksey Shipilev  
           
          24.
          Intrinsics for VarHandle.compareAndExchange{Volatile, Acquire, Release} Sub-task Resolved Aleksey Shipilev  
           
          25.
          Reference.reachabilityFence Sub-task Resolved Paul Sandoz  
           
          26.
          Implement VarHandles/Unsafe intrinsics on POWER Sub-task Resolved Martin Doerr  
           
          27.
          Integrate new internal Unsafe entry points, and basic intrinsic support for VarHandles Sub-task Resolved Aleksey Shipilev  
           
          28.
          ByteBuffer API and implementation enhancements for VarHandles Sub-task Resolved Paul Sandoz  
           
          29.
          Integrate VarHandles Sub-task Resolved Paul Sandoz  
           
          30.
          VarHandle factory-specific exceptions Sub-task Closed Paul Sandoz  
           
          31.
          VarHandle.AccessMode enum names should conform to code style Sub-task Resolved Paul Sandoz  
           
          32.
          Update VarHandle implementation to use @Stable arrays Sub-task Closed Paul Sandoz  
           
          33.
          VarHandle lookup access control tests Sub-task Closed Paul Sandoz  
           
          34.
          Result-boxed and result-less VarHandles are significantly penalized Sub-task Resolved Paul Sandoz  
           
          35.
          Use java.nio.ByteOrder instead of boolean value Sub-task Closed Paul Sandoz  
           
          36.
          Rename VarHandle.compareAndExchangeVolatile to VarHandle.compareAndExchange Sub-task Resolved Paul Sandoz  
           
          37.
          Add a VarHandle weakCompareAndSet with volatile semantics Sub-task Resolved Paul Sandoz  
           
          38.
          Exempt classes under java.util.concurrent from MH.Lookup restrictions Sub-task Closed Paul Sandoz  
           
          39.
          VarHandle implementation improvements Sub-task Resolved Paul Sandoz  
           
          40.
          [TESTBUG] VarHandles/Unsafe tests for weakCAS should allow spurious failures Sub-task Resolved Aleksey Shipilev  
           
          41.
          Unsafe.weakCompareAndSetVolatile entry points and intrinsics Sub-task Resolved Aleksey Shipilev  
           
          42.
          Unsafe.{get|set}Opaque should be single copy atomic Sub-task Resolved Aleksey Shipilev  
           
          43.
          MethodHandles.varHandleExactInvoker should perform exact checks Sub-task Resolved Paul Sandoz  
           
          44.
          Tests for invokeExact of handles produced from MethodHandles.varHandleExactInvoker Sub-task Resolved Paul Sandoz  
           
          45.
          Hook up Unsafe.weakCompareAndSetVolatile to VarHandles Sub-task Resolved Aleksey Shipilev  
           
          46.
          VarHandles/Unsafe should support sub-word atomic ops Sub-task Resolved Aleksey Shipilev  
           
          47.
          VarHandle float/double field/array access should support CAS/set/add atomics Sub-task Resolved Paul Sandoz 2016-06-30
           
          48.
          VarHandles should provide access bitwise atomics Sub-task Resolved Paul Sandoz  
           
          49.
          Remove VarHandle.addAndGet Sub-task Resolved Paul Sandoz  
           
          50.
          Add acquire/release variants for getAndSet and getAndAdd Sub-task Resolved Paul Sandoz  
           
          51.
          Rename weakCompareAndSetVolatile to weakCompareAndSet Sub-task Resolved Paul Sandoz  
           

            Activity

              People

              • Assignee:
                psandoz Paul Sandoz
                Reporter:
                psandoz Paul Sandoz
              • Votes:
                1 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Due:
                  Created:
                  Updated:
                  Resolved: