ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/ThreadLocalRandom.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/ThreadLocalRandom.java (file contents):
Revision 1.50 by jsr166, Sun Nov 13 03:37:41 2016 UTC vs.
Revision 1.51 by jsr166, Sun Jan 29 04:34:59 2017 UTC

# Line 956 | Line 956 | public class ThreadLocalRandom extends R
956          U.putObjectRelease(thread, INHERITEDACCESSCONTROLCONTEXT, acc);
957      }
958  
959    /**
960     * Returns a new group with the system ThreadGroup (the
961     * topmost, parent-less group) as parent.  Uses Unsafe to
962     * traverse Thread.group and ThreadGroup.parent fields.
963     */
964    static final ThreadGroup createThreadGroup(String name) {
965        if (name == null)
966            throw new NullPointerException();
967        try {
968            long tg = U.objectFieldOffset
969                (Thread.class.getDeclaredField("group"));
970            long gp = U.objectFieldOffset
971                (ThreadGroup.class.getDeclaredField("parent"));
972            ThreadGroup group = (ThreadGroup)
973                U.getObject(Thread.currentThread(), tg);
974            while (group != null) {
975                ThreadGroup parent = (ThreadGroup)U.getObject(group, gp);
976                if (parent == null)
977                    return new ThreadGroup(group, name);
978                group = parent;
979            }
980        } catch (ReflectiveOperationException e) {
981            throw new Error(e);
982        }
983        // fall through if null as cannot-happen safeguard
984        throw new Error("Cannot create ThreadGroup");
985    }
986
959      // Serialization support
960  
961      private static final long serialVersionUID = -5851777807851030925L;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines