mirror of
https://github.com/openRuyi-Project/gcc.git
synced 2026-06-23 11:56:03 +00:00
* 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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user