equal
deleted
inserted
replaced
47 |
47 |
48 /** |
48 /** |
49 * Implemented by clients registered with this port. |
49 * Implemented by clients registered with this port. |
50 */ |
50 */ |
51 interface PollableChannel extends Closeable { |
51 interface PollableChannel extends Closeable { |
52 void onEvent(int events); |
52 void onEvent(int events, boolean mayInvokeDirect); |
53 } |
53 } |
54 |
54 |
55 // maps fd to "pollable" channel |
55 // maps fd to "pollable" channel |
56 protected final ReadWriteLock fdToChannelLock = new ReentrantReadWriteLock(); |
56 protected final ReadWriteLock fdToChannelLock = new ReentrantReadWriteLock(); |
57 protected final Map<Integer,PollableChannel> fdToChannel = |
57 protected final Map<Integer,PollableChannel> fdToChannel = |
119 |
119 |
120 @Override |
120 @Override |
121 final Object attachForeignChannel(final Channel channel, FileDescriptor fd) { |
121 final Object attachForeignChannel(final Channel channel, FileDescriptor fd) { |
122 int fdVal = IOUtil.fdVal(fd); |
122 int fdVal = IOUtil.fdVal(fd); |
123 register(fdVal, new PollableChannel() { |
123 register(fdVal, new PollableChannel() { |
124 public void onEvent(int events) { } |
124 public void onEvent(int events, boolean mayInvokeDirect) { } |
125 public void close() throws IOException { |
125 public void close() throws IOException { |
126 channel.close(); |
126 channel.close(); |
127 } |
127 } |
128 }); |
128 }); |
129 return Integer.valueOf(fdVal); |
129 return Integer.valueOf(fdVal); |