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; |