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 (Inactive)  
          2.
          VarHandles for static fields Sub-task Resolved Paul Sandoz (Inactive)  
          3.
          VarHandles for arrays Sub-task Resolved Paul Sandoz (Inactive)  
          4.
          VarHandles for ByteBuffers Sub-task Resolved Paul Sandoz (Inactive)  
          5.
          VarHandles for array views Sub-task Resolved Paul Sandoz (Inactive)  
          6.
          VarHandles API specification Sub-task Resolved Paul Sandoz (Inactive)  
          7.
          VarHandles unit tests Sub-task Resolved Paul Sandoz (Inactive)  
          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 (Inactive)  
          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 (Inactive)  
          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 (Inactive)  
          29.
          Integrate VarHandles Sub-task Resolved Paul Sandoz (Inactive)  
          30.
          VarHandle factory-specific exceptions Sub-task Closed Paul Sandoz (Inactive)  
          31.
          VarHandle.AccessMode enum names should conform to code style Sub-task Resolved Paul Sandoz (Inactive)  
          32.
          Update VarHandle implementation to use @Stable arrays Sub-task Closed Paul Sandoz (Inactive)  
          33.
          VarHandle lookup access control tests Sub-task Closed Paul Sandoz (Inactive)  
          34.
          Result-boxed and result-less VarHandles are significantly penalized Sub-task Resolved Paul Sandoz (Inactive)  
          35.
          Use java.nio.ByteOrder instead of boolean value Sub-task Closed Paul Sandoz (Inactive)  
          36.
          Rename VarHandle.compareAndExchangeVolatile to VarHandle.compareAndExchange Sub-task Resolved Paul Sandoz (Inactive)  
          37.
          Add a VarHandle weakCompareAndSet with volatile semantics Sub-task Resolved Paul Sandoz (Inactive)  
          38.
          Exempt classes under java.util.concurrent from MH.Lookup restrictions Sub-task Closed Paul Sandoz (Inactive)  
          39.
          VarHandle implementation improvements Sub-task Resolved Paul Sandoz (Inactive)  
          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 (Inactive)  
          44.
          Tests for invokeExact of handles produced from MethodHandles.varHandleExactInvoker Sub-task Resolved Paul Sandoz (Inactive)  
          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 (Inactive) 2016-06-30
          48.
          VarHandles should provide access bitwise atomics Sub-task Resolved Paul Sandoz (Inactive)  
          49.
          Remove VarHandle.addAndGet Sub-task Resolved Paul Sandoz (Inactive)  
          50.
          Add acquire/release variants for getAndSet and getAndAdd Sub-task Resolved Paul Sandoz (Inactive)  
          51.
          Rename weakCompareAndSetVolatile to weakCompareAndSet Sub-task Resolved Paul Sandoz (Inactive)  

            Activity

              People

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

                Dates

                • Due:
                  Created:
                  Updated:
                  Resolved: