src/solaris/classes/sun/nio/ch/PollArrayWrapper.java

Print this page




  24  */
  25 
  26 package sun.nio.ch;
  27 
  28 import sun.misc.*;
  29 
  30 
  31 /**
  32  * Manipulates a native array of pollfd structs on Solaris:
  33  *
  34  * typedef struct pollfd {
  35  *    int fd;
  36  *    short events;
  37  *    short revents;
  38  * } pollfd_t;
  39  *
  40  * @author Mike McCloskey
  41  * @since 1.4
  42  */
  43 
  44 class PollArrayWrapper extends AbstractPollArrayWrapper {
  45 
  46     static final short POLLCONN = POLLOUT;
  47 
  48     // File descriptor to write for interrupt
  49     int interruptFD;
  50 
  51     PollArrayWrapper(int newSize) {
  52         newSize = (newSize + 1) * SIZE_POLLFD;
  53         pollArray = new AllocatedNativeObject(newSize, false);
  54         pollArrayAddress = pollArray.address();
  55         totalChannels = 1;
  56     }
  57 
  58     void initInterrupt(int fd0, int fd1) {
  59         interruptFD = fd1;
  60         putDescriptor(0, fd0);
  61         putEventOps(0, POLLIN);
  62         putReventOps(0, 0);
  63     }
  64 
  65     void release(int i) {
  66         return;




  24  */
  25 
  26 package sun.nio.ch;
  27 
  28 import sun.misc.*;
  29 
  30 
  31 /**
  32  * Manipulates a native array of pollfd structs on Solaris:
  33  *
  34  * typedef struct pollfd {
  35  *    int fd;
  36  *    short events;
  37  *    short revents;
  38  * } pollfd_t;
  39  *
  40  * @author Mike McCloskey
  41  * @since 1.4
  42  */
  43 
  44 public class PollArrayWrapper extends AbstractPollArrayWrapper {
  45 
  46     public static final short POLLCONN = POLLOUT;
  47 
  48     // File descriptor to write for interrupt
  49     int interruptFD;
  50 
  51     PollArrayWrapper(int newSize) {
  52         newSize = (newSize + 1) * SIZE_POLLFD;
  53         pollArray = new AllocatedNativeObject(newSize, false);
  54         pollArrayAddress = pollArray.address();
  55         totalChannels = 1;
  56     }
  57 
  58     void initInterrupt(int fd0, int fd1) {
  59         interruptFD = fd1;
  60         putDescriptor(0, fd0);
  61         putEventOps(0, POLLIN);
  62         putReventOps(0, 0);
  63     }
  64 
  65     void release(int i) {
  66         return;