aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/java/lang/ref
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2016-09-30 16:24:48 +0000
committerAndrew Haley <aph@gcc.gnu.org>2016-09-30 16:24:48 +0000
commit07b78716af6a9d7c9fd1e94d9baf94a52c873947 (patch)
tree3f22b3241c513ad168c8353805614ae1249410f4 /libjava/classpath/java/lang/ref
parenteae993948bae8b788c53772bcb9217c063716f93 (diff)
downloadgcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.zip
gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.gz
gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.bz2
Makefile.def: Remove libjava.
2016-09-30 Andrew Haley <aph@redhat.com> * Makefile.def: Remove libjava. * Makefile.tpl: Likewise. * Makefile.in: Regenerate. * configure.ac: Likewise. * configure: Likewise. * gcc/java: Remove. * libjava: Likewise. From-SVN: r240662
Diffstat (limited to 'libjava/classpath/java/lang/ref')
-rw-r--r--libjava/classpath/java/lang/ref/PhantomReference.java73
-rw-r--r--libjava/classpath/java/lang/ref/Reference.java176
-rw-r--r--libjava/classpath/java/lang/ref/ReferenceQueue.java164
-rw-r--r--libjava/classpath/java/lang/ref/SoftReference.java84
-rw-r--r--libjava/classpath/java/lang/ref/WeakReference.java79
-rw-r--r--libjava/classpath/java/lang/ref/package.html46
6 files changed, 0 insertions, 622 deletions
diff --git a/libjava/classpath/java/lang/ref/PhantomReference.java b/libjava/classpath/java/lang/ref/PhantomReference.java
deleted file mode 100644
index 29215ea..0000000
--- a/libjava/classpath/java/lang/ref/PhantomReference.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/* java.lang.ref.PhantomReference
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.ref;
-
-/**
- * A phantom reference is useful, to get notified, when an object got
- * finalized. You can't access that object though, since it is
- * finalized. This is the reason, why <code>get()</code> always
- * returns null.
- *
- * @author Jochen Hoenicke
- */
-public class PhantomReference<T>
- extends Reference<T>
-{
- /**
- * Creates a new phantom reference.
- * @param referent the object that should be watched.
- * @param q the queue that should be notified, if the referent was
- * finalized. This mustn't be <code>null</code>.
- * @exception NullPointerException if q is null.
- */
- public PhantomReference(T referent, ReferenceQueue<? super T> q)
- {
- super(referent, q);
- }
-
- /**
- * Returns the object, this reference refers to.
- * @return <code>null</code>, since the refered object may be
- * finalized and thus not accessible.
- */
- public T get()
- {
- return null;
- }
-}
diff --git a/libjava/classpath/java/lang/ref/Reference.java b/libjava/classpath/java/lang/ref/Reference.java
deleted file mode 100644
index 37cda6f..0000000
--- a/libjava/classpath/java/lang/ref/Reference.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/* java.lang.ref.Reference
- Copyright (C) 1999, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.ref;
-
-/**
- * This is the base class of all references. A reference allows
- * refering to an object without preventing the garbage collector to
- * collect it. The only way to get the referred object is via the
- * <code>get()</code>-method. This method will return
- * <code>null</code> if the object was collected. <br>
- *
- * A reference may be registered with a queue. When a referred
- * element gets collected the reference will be put on the queue, so
- * that you will be notified. <br>
- *
- * There are currently three types of references: soft reference,
- * weak reference and phantom reference. <br>
- *
- * Soft references will be cleared if the garbage collector is told
- * to free some memory and there are no unreferenced or weakly referenced
- * objects. It is useful for caches. <br>
- *
- * Weak references will be cleared as soon as the garbage collector
- * determines that the refered object is only weakly reachable. They
- * are useful as keys in hashtables (see <code>WeakHashtable</code>) as
- * you get notified when nobody has the key anymore.
- *
- * Phantom references don't prevent finalization. If an object is only
- * phantom reachable, it will be finalized, and the reference will be
- * enqueued, but not cleared. Since you mustn't access an finalized
- * object, the <code>get</code> method of a phantom reference will never
- * work. It is useful to keep track, when an object is finalized.
- *
- * @author Jochen Hoenicke
- * @see java.util.WeakHashMap
- */
-public abstract class Reference<T>
-{
- /**
- * The underlying object. This field is handled in a special way by
- * the garbage collector.
- */
- T referent;
-
- /**
- * The queue this reference is registered on. This is null, if this
- * wasn't registered to any queue or reference was already enqueued.
- */
- volatile ReferenceQueue<? super T> queue;
-
- /**
- * Link to the next entry on the queue. If this is null, this
- * reference is not enqueued. Otherwise it points to the next
- * reference. The last reference on a queue will point to itself
- * (not to null, that value is used to mark a not enqueued
- * reference).
- */
- volatile Reference nextOnQueue;
-
- /**
- * This lock should be taken by the garbage collector, before
- * determining reachability. It will prevent the get()-method to
- * return the reference so that reachability doesn't change.
- */
- static Object lock = new Object();
-
- /**
- * Creates a new reference that is not registered to any queue.
- * Since it is package private, it is not possible to overload this
- * class in a different package.
- * @param ref the object we refer to.
- */
- Reference(T ref)
- {
- referent = ref;
- }
-
- /**
- * Creates a reference that is registered to a queue. Since this is
- * package private, it is not possible to overload this class in a
- * different package.
- * @param ref the object we refer to.
- * @param q the reference queue to register on.
- * @exception NullPointerException if q is null.
- */
- Reference(T ref, ReferenceQueue<? super T> q)
- {
- if (q == null)
- throw new NullPointerException();
- referent = ref;
- queue = q;
- }
-
- /**
- * Returns the object, this reference refers to.
- * @return the object, this reference refers to, or null if the
- * reference was cleared.
- */
- public T get()
- {
- synchronized (lock)
- {
- return referent;
- }
- }
-
- /**
- * Clears the reference, so that it doesn't refer to its object
- * anymore. For soft and weak references this is called by the
- * garbage collector. For phantom references you should call
- * this when enqueuing the reference.
- */
- public void clear()
- {
- referent = null;
- }
-
- /**
- * Tells if the object is enqueued on a reference queue.
- * @return true if it is enqueued, false otherwise.
- */
- public boolean isEnqueued()
- {
- return nextOnQueue != null;
- }
-
- /**
- * Enqueue an object on a reference queue. This is normally executed
- * by the garbage collector.
- */
- public boolean enqueue()
- {
- ReferenceQueue q = queue;
- if (q != null)
- {
- return q.enqueue(this);
- }
- return false;
- }
-}
diff --git a/libjava/classpath/java/lang/ref/ReferenceQueue.java b/libjava/classpath/java/lang/ref/ReferenceQueue.java
deleted file mode 100644
index 73f62d6..0000000
--- a/libjava/classpath/java/lang/ref/ReferenceQueue.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/* java.lang.ref.ReferenceQueue
- Copyright (C) 1999, 2004, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.ref;
-
-/**
- * This is the queue, where references can enqueue themselve on. Each
- * reference may be registered to a queue at initialization time and
- * will be appended to the queue, when the enqueue method is called.
- *
- * The enqueue method may be automatically called by the garbage
- * collector if it detects, that the object is only reachable through
- * the Reference objects.
- *
- * @author Jochen Hoenicke
- * @see Reference#enqueue()
- */
-public class ReferenceQueue<T>
-{
- /**
- * This is a linked list of references. If this is null, the list is
- * empty. Otherwise this points to the first reference on the queue.
- * The first reference will point to the next reference via the
- * <code>nextOnQueue</code> field. The last reference will point to
- * itself (not to null, since <code>nextOnQueue</code> is used to
- * determine if a reference is enqueued).
- */
- private Reference<? extends T> first;
-
- /**
- * This is the lock that protects our linked list and is used to signal
- * a thread waiting in remove().
- */
- private final Object lock = new Object();
-
- /**
- * Creates a new empty reference queue.
- */
- public ReferenceQueue()
- {
- }
-
- /**
- * Checks if there is a reference on the queue, returning it
- * immediately. The reference will be dequeued.
- *
- * @return a reference on the queue, if there is one,
- * <code>null</code> otherwise.
- */
- public Reference<? extends T> poll()
- {
- return dequeue();
- }
-
- /**
- * This is called by reference to enqueue itself on this queue.
- * @param ref the reference that should be enqueued.
- * @return true if successful, false if not.
- */
- final boolean enqueue(Reference<? extends T> ref)
- {
- synchronized (lock)
- {
- if (ref.queue != this)
- return false;
-
- /* last reference will point to itself */
- ref.nextOnQueue = first == null ? ref : first;
- ref.queue = null;
- first = ref;
- /* this wakes only one remove thread. */
- lock.notify();
- return true;
- }
- }
-
- /**
- * Remove a reference from the queue, if there is one.
- * @return the first element of the queue, or null if there isn't any.
- */
- private Reference<? extends T> dequeue()
- {
- synchronized (lock)
- {
- if (first == null)
- return null;
-
- Reference<? extends T> result = first;
- first = (first == first.nextOnQueue) ? null : first.nextOnQueue;
- result.nextOnQueue = null;
- return result;
- }
- }
-
- /**
- * Removes a reference from the queue, blocking for <code>timeout</code>
- * until a reference is enqueued.
- * @param timeout the timeout period in milliseconds, <code>0</code> means
- * wait forever.
- * @return the reference removed from the queue, or
- * <code>null</code> if timeout period expired.
- * @exception InterruptedException if the wait was interrupted.
- */
- public Reference<? extends T> remove(long timeout)
- throws InterruptedException
- {
- synchronized (lock)
- {
- if (first == null)
- lock.wait(timeout);
- }
-
- return dequeue();
- }
-
-
- /**
- * Removes a reference from the queue, blocking until a reference is
- * enqueued.
- *
- * @return the reference removed from the queue.
- * @exception InterruptedException if the wait was interrupted.
- */
- public Reference<? extends T> remove()
- throws InterruptedException
- {
- return remove(0L);
- }
-}
diff --git a/libjava/classpath/java/lang/ref/SoftReference.java b/libjava/classpath/java/lang/ref/SoftReference.java
deleted file mode 100644
index 269ffd0..0000000
--- a/libjava/classpath/java/lang/ref/SoftReference.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* java.lang.ref.SoftReference
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.ref;
-
-/**
- * A soft reference will be cleared, if the object is only softly
- * reachable and the garbage collection needs more memory. The garbage
- * collection will use an intelligent strategy to determine which soft
- * references it should clear. This makes a soft reference ideal for
- * caches.<br>
- *
- * @author Jochen Hoenicke
- */
-public class SoftReference<T>
- extends Reference<T>
-{
- /**
- * Create a new soft reference, that is not registered to any queue.
- * @param referent the object we refer to.
- */
- public SoftReference(T referent)
- {
- super(referent);
- }
-
- /**
- * Create a new soft reference.
- * @param referent the object we refer to.
- * @param q the reference queue to register on.
- * @exception NullPointerException if q is null.
- */
- public SoftReference(T referent, ReferenceQueue<? super T> q)
- {
- super(referent, q);
- }
-
- /**
- * Returns the object, this reference refers to.
- * @return the object, this reference refers to, or null if the
- * reference was cleared.
- */
- public T get()
- {
- /* Why is this overloaded???
- * Maybe for a kind of LRU strategy. */
- return super.get();
- }
-}
diff --git a/libjava/classpath/java/lang/ref/WeakReference.java b/libjava/classpath/java/lang/ref/WeakReference.java
deleted file mode 100644
index 9735643..0000000
--- a/libjava/classpath/java/lang/ref/WeakReference.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* java.lang.ref.WeakReference
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.ref;
-
-/**
- * A weak reference will be cleared, if the object is only weakly
- * reachable. It is useful for lookup tables, where you aren't
- * interested in an entry, if the key isn't reachable anymore.
- * <code>WeakHashtable</code> is a complete implementation of such a
- * table. <br>
- *
- * It is also useful to make objects unique: You create a set of weak
- * references to those objects, and when you create a new object you
- * look in this set, if the object already exists and return it. If
- * an object is not referenced anymore, the reference will
- * automatically cleared, and you may remove it from the set. <br>
- *
- * @author Jochen Hoenicke
- * @see java.util.WeakHashMap
- */
-public class WeakReference<T>
- extends Reference<T>
-{
- /**
- * Create a new weak reference, that is not registered to any queue.
- * @param referent the object we refer to.
- */
- public WeakReference(T referent)
- {
- super(referent);
- }
-
- /**
- * Create a new weak reference.
- * @param referent the object we refer to.
- * @param q the reference queue to register on.
- * @exception NullPointerException if q is null.
- */
- public WeakReference(T referent, ReferenceQueue<? super T> q)
- {
- super(referent, q);
- }
-}
diff --git a/libjava/classpath/java/lang/ref/package.html b/libjava/classpath/java/lang/ref/package.html
deleted file mode 100644
index d3d1762..0000000
--- a/libjava/classpath/java/lang/ref/package.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<!-- package.html - describes classes in java.lang.ref package.
- Copyright (C) 2002 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. -->
-
-<html>
-<head><title>GNU Classpath - java.lang.ref</title></head>
-
-<body>
-<p>Low level manipulation and monitoring of object references.</p>
-
-</body>
-</html>