Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-56…
Browse files Browse the repository at this point in the history
…05-wakeup-blocked-threads
  • Loading branch information
gregw committed Feb 4, 2021
2 parents 7235e49 + a26ad6d commit 096e8b8
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 4 deletions.
41 changes: 39 additions & 2 deletions jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,14 @@
import java.util.concurrent.atomic.AtomicBoolean;

import org.eclipse.jetty.util.IO;
import org.eclipse.jetty.util.annotation.ManagedAttribute;
import org.eclipse.jetty.util.annotation.ManagedOperation;
import org.eclipse.jetty.util.component.ContainerLifeCycle;
import org.eclipse.jetty.util.component.Dumpable;
import org.eclipse.jetty.util.component.DumpableCollection;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.statistic.SampleStatistic;
import org.eclipse.jetty.util.thread.ExecutionStrategy;
import org.eclipse.jetty.util.thread.Scheduler;
import org.eclipse.jetty.util.thread.strategy.EatWhatYouKill;
Expand Down Expand Up @@ -86,6 +89,7 @@ public class ManagedSelector extends ContainerLifeCycle implements Dumpable
private Selector _selector;
private Deque<SelectorUpdate> _updates = new ArrayDeque<>();
private Deque<SelectorUpdate> _updateable = new ArrayDeque<>();
private final SampleStatistic _keyStats = new SampleStatistic();

public ManagedSelector(SelectorManager selectorManager, int id)
{
Expand Down Expand Up @@ -144,6 +148,36 @@ protected void doStop() throws Exception
super.doStop();
}

@ManagedAttribute(value = "Total number of keys", readonly = true)
public int getTotalKeys()
{
return _selector.keys().size();
}

@ManagedAttribute(value = "Average number of selected keys", readonly = true)
public double getAverageSelectedKeys()
{
return _keyStats.getMean();
}

@ManagedAttribute(value = "Maximum number of selected keys", readonly = true)
public double getMaxSelectedKeys()
{
return _keyStats.getMax();
}

@ManagedAttribute(value = "Total number of select() calls", readonly = true)
public long getSelectCount()
{
return _keyStats.getCount();
}

@ManagedOperation(value = "Resets the statistics", impact = "ACTION")
public void resetStats()
{
_keyStats.reset();
}

protected int nioSelect(Selector selector, boolean now) throws IOException
{
return now ? selector.selectNow() : selector.select();
Expand Down Expand Up @@ -586,9 +620,12 @@ private boolean select()
}

_keys = selector.selectedKeys();
_cursor = _keys.isEmpty() ? Collections.emptyIterator() : _keys.iterator();
int selectedKeys = _keys.size();
if (selectedKeys > 0)
_keyStats.record(selectedKeys);
_cursor = selectedKeys > 0 ? _keys.iterator() : Collections.emptyIterator();
if (LOG.isDebugEnabled())
LOG.debug("Selector {} processing {} keys, {} updates", selector, _keys.size(), updates);
LOG.debug("Selector {} processing {} keys, {} updates", selector, selectedKeys, updates);

return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2198,7 +2198,7 @@ public void setPathInfo(String pathInfo)
* Set the character encoding used for the query string. This call will effect the return of getQueryString and getParamaters. It must be called before any
* getParameter methods.
*
* The request attribute "org.eclipse.jetty.server.server.Request.queryEncoding" may be set as an alternate method of calling setQueryEncoding.
* The request attribute "org.eclipse.jetty.server.Request.queryEncoding" may be set as an alternate method of calling setQueryEncoding.
*
* @param queryEncoding the URI query character encoding
*/
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -652,7 +652,7 @@
<plugin>
<groupId>org.eclipse.jetty.toolchain</groupId>
<artifactId>jetty-version-maven-plugin</artifactId>
<version>2.6</version>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
Expand Down

0 comments on commit 096e8b8

Please sign in to comment.