@Override public void install( Channel channel ) { ThrottleLock lock = lockSupplier.get(); channel.attr( LOCK_KEY ).set( lock ); channel.config().setWriteBufferWaterMark( new WriteBufferWaterMark( lowWaterMark, highWaterMark ) ); channel.pipeline().addLast( listener ); }
public void doSetWriteQueueMaxSize(int size) { ChannelConfig config = chctx.channel().config(); config.setWriteBufferWaterMark(new WriteBufferWaterMark(size / 2, size)); }
/** * Disables the write buffer water mark of the specified {@link Channel}, because we do not use this * feature at all and thus we do not want {@code channelWritabilityChanged} events triggered often. */ public static void disableWriterBufferWatermark(Channel channel) { channel.config().setWriteBufferWaterMark(DISABLED_WRITE_BUFFER_WATERMARK); }
@Test(timeout = 60000) public void testRequestMorePostFlush() throws Exception { WriteStreamSubscriber sub1 = inspectorRule.newSubscriber(); MockProducer mockProducer = inspectorRule.setupSubscriberAndValidate(sub1, 1); assertThat("Unexpected items requested from producer.", mockProducer.getRequested(), is(defaultRequestN())); inspectorRule.channel.config().setWriteBufferWaterMark(new WriteBufferWaterMark(1, 2)); /*Make sure that the channel is not writable on writing.*/ String msg = "Hello"; inspectorRule.channel.write(msg); assertThat("Channel still writable.", inspectorRule.channel.isWritable(), is(false)); assertThat("More items requested when channel is not writable.", mockProducer.getRequested(), is(defaultRequestN())); inspectorRule.channel.flush(); assertThat("Channel not writable post flush.", inspectorRule.channel.isWritable(), is(true)); assertThat("Unexpected items requested.", mockProducer.getRequested(), is(defaultRequestN())); }
public void doSetWriteQueueMaxSize(int size) { ChannelConfig config = chctx.channel().config(); config.setWriteBufferWaterMark(new WriteBufferWaterMark(size / 2, size)); }
@Override public void initChannel(Channel ch) throws Exception { try { ch.config().setOption( ChannelOption.IP_TOS, 0x18 ); } catch ( ChannelException ex ) { // IP_TOS is not supported (Windows XP / Windows Server 2003) } ch.config().setAllocator( PooledByteBufAllocator.DEFAULT ); ch.config().setWriteBufferWaterMark( MARK ); ch.pipeline().addLast( TIMEOUT_HANDLER, new ReadTimeoutHandler( BungeeCord.getInstance().config.getTimeout(), TimeUnit.MILLISECONDS ) ); ch.pipeline().addLast( FRAME_DECODER, new Varint21FrameDecoder() ); ch.pipeline().addLast( FRAME_PREPENDER, framePrepender ); ch.pipeline().addLast( BOSS_HANDLER, new HandlerBoss() ); } }
@Override public void install( Channel channel ) { ThrottleLock lock = lockSupplier.get(); channel.attr( LOCK_KEY ).set( lock ); channel.config().setWriteBufferWaterMark( new WriteBufferWaterMark( lowWaterMark, highWaterMark ) ); channel.pipeline().addLast( listener ); }