[PATCH] Move Solaris specific classes to solaris/
Roman Kennke
roman at kennke.org
Fri Jan 25 20:37:41 UTC 2008
Hi,
there are some classes in the jdk/share tree, that seem to be Solaris
specific. I suggest moving them to the jdk/solaris tree instead. Or am I
wrong here?
/Roman
--
http://kennke.org/blog/
-------------- next part --------------
# HG changeset patch
# User Roman Kennke <kennke at aicas.com>
# Date 1201293270 -3600
# Node ID db9384d2f46857b26ae306b4a0e1d25a049c634e
# Parent 2b6c2ce8cd88445d9e3ea709069bf26d53039223
Moved Solaris specific NIO Java classes to the solaris subdir
diff -r 2b6c2ce8cd88 -r db9384d2f468 src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java
--- a/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java Tue Dec 18 15:30:58 2007 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
- * Copyright 2001-2004 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.nio.ch;
-
-import java.io.IOException;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
-import java.util.*;
-import sun.misc.*;
-
-
-/**
- * An abstract selector impl.
- */
-
-abstract class AbstractPollSelectorImpl
- extends SelectorImpl
-{
-
- // The poll fd array
- PollArrayWrapper pollWrapper;
-
- // Initial capacity of the pollfd array
- protected final int INIT_CAP = 10;
-
- // The list of SelectableChannels serviced by this Selector
- protected SelectionKeyImpl[] channelArray;
-
- // In some impls the first entry of channelArray is bogus
- protected int channelOffset = 0;
-
- // The number of valid channels in this Selector's poll array
- protected int totalChannels;
-
- // True if this Selector has been closed
- private boolean closed = false;
-
- AbstractPollSelectorImpl(SelectorProvider sp, int channels, int offset) {
- super(sp);
- this.totalChannels = channels;
- this.channelOffset = offset;
- }
-
- void putEventOps(SelectionKeyImpl sk, int ops) {
- pollWrapper.putEventOps(sk.getIndex(), ops);
- }
-
- public Selector wakeup() {
- pollWrapper.interrupt();
- return this;
- }
-
- protected abstract int doSelect(long timeout) throws IOException;
-
- protected void implClose() throws IOException {
- if (!closed) {
- closed = true;
- // Deregister channels
- for(int i=channelOffset; i<totalChannels; i++) {
- SelectionKeyImpl ski = channelArray[i];
- assert(ski.getIndex() != -1);
- ski.setIndex(-1);
- deregister(ski);
- SelectableChannel selch = channelArray[i].channel();
- if (!selch.isOpen() && !selch.isRegistered())
- ((SelChImpl)selch).kill();
- }
- implCloseInterrupt();
- pollWrapper.free();
- pollWrapper = null;
- selectedKeys = null;
- channelArray = null;
- totalChannels = 0;
- }
- }
-
- protected abstract void implCloseInterrupt() throws IOException;
-
- /**
- * Copy the information in the pollfd structs into the opss
- * of the corresponding Channels. Add the ready keys to the
- * ready queue.
- */
- protected int updateSelectedKeys() {
- int numKeysUpdated = 0;
- // Skip zeroth entry; it is for interrupts only
- for (int i=channelOffset; i<totalChannels; i++) {
- int rOps = pollWrapper.getReventOps(i);
- if (rOps != 0) {
- SelectionKeyImpl sk = channelArray[i];
- pollWrapper.putReventOps(i, 0);
- if (selectedKeys.contains(sk)) {
- if (sk.channel.translateAndSetReadyOps(rOps, sk)) {
- numKeysUpdated++;
- }
- } else {
- sk.channel.translateAndSetReadyOps(rOps, sk);
- if ((sk.nioReadyOps() & sk.nioInterestOps()) != 0) {
- selectedKeys.add(sk);
- numKeysUpdated++;
- }
- }
- }
- }
- return numKeysUpdated;
- }
-
- protected void implRegister(SelectionKeyImpl ski) {
- // Check to see if the array is large enough
- if (channelArray.length == totalChannels) {
- // Make a larger array
- int newSize = pollWrapper.totalChannels * 2;
- SelectionKeyImpl temp[] = new SelectionKeyImpl[newSize];
- // Copy over
- for (int i=channelOffset; i<totalChannels; i++)
- temp[i] = channelArray[i];
- channelArray = temp;
- // Grow the NativeObject poll array
- pollWrapper.grow(newSize);
- }
- channelArray[totalChannels] = ski;
- ski.setIndex(totalChannels);
- pollWrapper.addEntry(ski.channel);
- totalChannels++;
- keys.add(ski);
- }
-
- protected void implDereg(SelectionKeyImpl ski) throws IOException {
- // Algorithm: Copy the sc from the end of the list and put it into
- // the location of the sc to be removed (since order doesn't
- // matter). Decrement the sc count. Update the index of the sc
- // that is moved.
- int i = ski.getIndex();
- assert (i >= 0);
- if (i != totalChannels - 1) {
- // Copy end one over it
- SelectionKeyImpl endChannel = channelArray[totalChannels-1];
- channelArray[i] = endChannel;
- endChannel.setIndex(i);
- pollWrapper.release(i);
- PollArrayWrapper.replaceEntry(pollWrapper, totalChannels - 1,
- pollWrapper, i);
- } else {
- pollWrapper.release(i);
- }
- // Destroy the last one
- channelArray[totalChannels-1] = null;
- totalChannels--;
- pollWrapper.totalChannels--;
- ski.setIndex(-1);
- // Remove the key from keys and selectedKeys
- keys.remove(ski);
- selectedKeys.remove(ski);
- deregister((AbstractSelectionKey)ski);
- SelectableChannel selch = ski.channel();
- if (!selch.isOpen() && !selch.isRegistered())
- ((SelChImpl)selch).kill();
- }
-
- static {
- Util.load();
- }
-
-}
diff -r 2b6c2ce8cd88 -r db9384d2f468 src/share/classes/sun/nio/ch/DevPollSelectorProvider.java
--- a/src/share/classes/sun/nio/ch/DevPollSelectorProvider.java Tue Dec 18 15:30:58 2007 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.nio.ch;
-
-import java.io.IOException;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
-
-public class DevPollSelectorProvider
- extends SelectorProviderImpl
-{
- public AbstractSelector openSelector() throws IOException {
- return new DevPollSelectorImpl(this);
- }
-
- public Channel inheritedChannel() throws IOException {
- return InheritedChannel.getChannel();
- }
-}
diff -r 2b6c2ce8cd88 -r db9384d2f468 src/share/classes/sun/nio/ch/PollSelectorProvider.java
--- a/src/share/classes/sun/nio/ch/PollSelectorProvider.java Tue Dec 18 15:30:58 2007 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.nio.ch;
-
-import java.io.IOException;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
-
-public class PollSelectorProvider
- extends SelectorProviderImpl
-{
- public AbstractSelector openSelector() throws IOException {
- return new PollSelectorImpl(this);
- }
-
- public Channel inheritedChannel() throws IOException {
- return InheritedChannel.getChannel();
- }
-}
diff -r 2b6c2ce8cd88 -r db9384d2f468 src/solaris/classes/sun/nio/ch/AbstractPollSelectorImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/solaris/classes/sun/nio/ch/AbstractPollSelectorImpl.java Fri Jan 25 21:34:30 2008 +0100
@@ -0,0 +1,187 @@
+/*
+ * Copyright 2001-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.ch;
+
+import java.io.IOException;
+import java.nio.channels.*;
+import java.nio.channels.spi.*;
+import java.util.*;
+import sun.misc.*;
+
+
+/**
+ * An abstract selector impl.
+ */
+
+abstract class AbstractPollSelectorImpl
+ extends SelectorImpl
+{
+
+ // The poll fd array
+ PollArrayWrapper pollWrapper;
+
+ // Initial capacity of the pollfd array
+ protected final int INIT_CAP = 10;
+
+ // The list of SelectableChannels serviced by this Selector
+ protected SelectionKeyImpl[] channelArray;
+
+ // In some impls the first entry of channelArray is bogus
+ protected int channelOffset = 0;
+
+ // The number of valid channels in this Selector's poll array
+ protected int totalChannels;
+
+ // True if this Selector has been closed
+ private boolean closed = false;
+
+ AbstractPollSelectorImpl(SelectorProvider sp, int channels, int offset) {
+ super(sp);
+ this.totalChannels = channels;
+ this.channelOffset = offset;
+ }
+
+ void putEventOps(SelectionKeyImpl sk, int ops) {
+ pollWrapper.putEventOps(sk.getIndex(), ops);
+ }
+
+ public Selector wakeup() {
+ pollWrapper.interrupt();
+ return this;
+ }
+
+ protected abstract int doSelect(long timeout) throws IOException;
+
+ protected void implClose() throws IOException {
+ if (!closed) {
+ closed = true;
+ // Deregister channels
+ for(int i=channelOffset; i<totalChannels; i++) {
+ SelectionKeyImpl ski = channelArray[i];
+ assert(ski.getIndex() != -1);
+ ski.setIndex(-1);
+ deregister(ski);
+ SelectableChannel selch = channelArray[i].channel();
+ if (!selch.isOpen() && !selch.isRegistered())
+ ((SelChImpl)selch).kill();
+ }
+ implCloseInterrupt();
+ pollWrapper.free();
+ pollWrapper = null;
+ selectedKeys = null;
+ channelArray = null;
+ totalChannels = 0;
+ }
+ }
+
+ protected abstract void implCloseInterrupt() throws IOException;
+
+ /**
+ * Copy the information in the pollfd structs into the opss
+ * of the corresponding Channels. Add the ready keys to the
+ * ready queue.
+ */
+ protected int updateSelectedKeys() {
+ int numKeysUpdated = 0;
+ // Skip zeroth entry; it is for interrupts only
+ for (int i=channelOffset; i<totalChannels; i++) {
+ int rOps = pollWrapper.getReventOps(i);
+ if (rOps != 0) {
+ SelectionKeyImpl sk = channelArray[i];
+ pollWrapper.putReventOps(i, 0);
+ if (selectedKeys.contains(sk)) {
+ if (sk.channel.translateAndSetReadyOps(rOps, sk)) {
+ numKeysUpdated++;
+ }
+ } else {
+ sk.channel.translateAndSetReadyOps(rOps, sk);
+ if ((sk.nioReadyOps() & sk.nioInterestOps()) != 0) {
+ selectedKeys.add(sk);
+ numKeysUpdated++;
+ }
+ }
+ }
+ }
+ return numKeysUpdated;
+ }
+
+ protected void implRegister(SelectionKeyImpl ski) {
+ // Check to see if the array is large enough
+ if (channelArray.length == totalChannels) {
+ // Make a larger array
+ int newSize = pollWrapper.totalChannels * 2;
+ SelectionKeyImpl temp[] = new SelectionKeyImpl[newSize];
+ // Copy over
+ for (int i=channelOffset; i<totalChannels; i++)
+ temp[i] = channelArray[i];
+ channelArray = temp;
+ // Grow the NativeObject poll array
+ pollWrapper.grow(newSize);
+ }
+ channelArray[totalChannels] = ski;
+ ski.setIndex(totalChannels);
+ pollWrapper.addEntry(ski.channel);
+ totalChannels++;
+ keys.add(ski);
+ }
+
+ protected void implDereg(SelectionKeyImpl ski) throws IOException {
+ // Algorithm: Copy the sc from the end of the list and put it into
+ // the location of the sc to be removed (since order doesn't
+ // matter). Decrement the sc count. Update the index of the sc
+ // that is moved.
+ int i = ski.getIndex();
+ assert (i >= 0);
+ if (i != totalChannels - 1) {
+ // Copy end one over it
+ SelectionKeyImpl endChannel = channelArray[totalChannels-1];
+ channelArray[i] = endChannel;
+ endChannel.setIndex(i);
+ pollWrapper.release(i);
+ PollArrayWrapper.replaceEntry(pollWrapper, totalChannels - 1,
+ pollWrapper, i);
+ } else {
+ pollWrapper.release(i);
+ }
+ // Destroy the last one
+ channelArray[totalChannels-1] = null;
+ totalChannels--;
+ pollWrapper.totalChannels--;
+ ski.setIndex(-1);
+ // Remove the key from keys and selectedKeys
+ keys.remove(ski);
+ selectedKeys.remove(ski);
+ deregister((AbstractSelectionKey)ski);
+ SelectableChannel selch = ski.channel();
+ if (!selch.isOpen() && !selch.isRegistered())
+ ((SelChImpl)selch).kill();
+ }
+
+ static {
+ Util.load();
+ }
+
+}
diff -r 2b6c2ce8cd88 -r db9384d2f468 src/solaris/classes/sun/nio/ch/DevPollSelectorProvider.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/solaris/classes/sun/nio/ch/DevPollSelectorProvider.java Fri Jan 25 21:34:30 2008 +0100
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.ch;
+
+import java.io.IOException;
+import java.nio.channels.*;
+import java.nio.channels.spi.*;
+
+public class DevPollSelectorProvider
+ extends SelectorProviderImpl
+{
+ public AbstractSelector openSelector() throws IOException {
+ return new DevPollSelectorImpl(this);
+ }
+
+ public Channel inheritedChannel() throws IOException {
+ return InheritedChannel.getChannel();
+ }
+}
diff -r 2b6c2ce8cd88 -r db9384d2f468 src/solaris/classes/sun/nio/ch/PollSelectorProvider.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/solaris/classes/sun/nio/ch/PollSelectorProvider.java Fri Jan 25 21:34:30 2008 +0100
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.ch;
+
+import java.io.IOException;
+import java.nio.channels.*;
+import java.nio.channels.spi.*;
+
+public class PollSelectorProvider
+ extends SelectorProviderImpl
+{
+ public AbstractSelector openSelector() throws IOException {
+ return new PollSelectorImpl(this);
+ }
+
+ public Channel inheritedChannel() throws IOException {
+ return InheritedChannel.getChannel();
+ }
+}
More information about the core-libs-dev
mailing list