aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/nio/channels/spi
diff options
context:
space:
mode:
authorMohan Embar <gnustuff@thisiscool.com>2003-12-20 15:33:24 +0000
committerMohan Embar <membar@gcc.gnu.org>2003-12-20 15:33:24 +0000
commit677f99cce56ecbafbb2f648fb345f5d051cef6cc (patch)
treeb5bed309c7a6e581e386dd9be0e16fa13651636b /libjava/java/nio/channels/spi
parent59687e189077b503621c5c0066276f078436e1bf (diff)
downloadgcc-677f99cce56ecbafbb2f648fb345f5d051cef6cc.zip
gcc-677f99cce56ecbafbb2f648fb345f5d051cef6cc.tar.gz
gcc-677f99cce56ecbafbb2f648fb345f5d051cef6cc.tar.bz2
* gnu/java/nio/SelectorImpl.java
(selectThreadMutex): New field. (selectThread): New field. (unhandledWakeup): New field. (implCloseSelector): Added skeleton code which synchronizes as per Sun JRE JavaDoc. (keys): Throw ClosedSelectorException if selector is closed. (selectNow): Added comment that we're faking out an immediate select with a one-microsecond-timeout one. (select): Use 0 instead of -1 for infinite timeout. (implSelect): Changed comment in declaration. (select): Added synchronized to method declaration. Added synchronization and wakeup support as per Sun JRE JavaDoc. (selectedKeys): Throw ClosedSelectorException if selector is closed. (wakeup): Implemented. (deregisterCancelledKeys): Synchronize on cancelled key set before deregistering. (register): Synchronize on key set before registering. * java/nio/channels/spi/AbstractSelector.java Added import for java.nio.channels.ClosedSelectorException. (close): Added synchronized to method declaration. (cancelledKeys): Throw ClosedSelectorException if selector is closed. (cancelKey): Synchronize on cancelled key set before key. From-SVN: r74879
Diffstat (limited to 'libjava/java/nio/channels/spi')
-rw-r--r--libjava/java/nio/channels/spi/AbstractSelector.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/libjava/java/nio/channels/spi/AbstractSelector.java b/libjava/java/nio/channels/spi/AbstractSelector.java
index 58ce0c8..ca77187 100644
--- a/libjava/java/nio/channels/spi/AbstractSelector.java
+++ b/libjava/java/nio/channels/spi/AbstractSelector.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.nio.channels.spi;
import java.io.IOException;
+import java.nio.channels.ClosedSelectorException;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.util.Set;
@@ -64,7 +65,7 @@ public abstract class AbstractSelector extends Selector
*
* @exception IOException If an error occurs
*/
- public final void close () throws IOException
+ public final synchronized void close () throws IOException
{
if (closed)
return;
@@ -102,12 +103,18 @@ public abstract class AbstractSelector extends Selector
protected final Set cancelledKeys()
{
+ if (!isOpen())
+ throw new ClosedSelectorException();
+
return cancelledKeys;
}
final void cancelKey (AbstractSelectionKey key)
{
- cancelledKeys.remove (key);
+ synchronized (cancelledKeys)
+ {
+ cancelledKeys.remove(key);
+ }
}
/**