It seems that funnels should not require a thread; they do not actually
process data. However, looking into the code for both 1.8.0  and master
, it seems that a thread is allocated to each funnel when gathering the
status of a Process Group. Does this count against threads available to be
allocated to processors?
I believe it does pull from the same thread pool but not sure if it is
Alternatively it could be implemented such that whenever data is written to
a queue we check if the target of that queue is a funnel and if so then
immediately do the right 'next' thing until the next target isn't a
funnel. Could do the same with local ports..
Digging a little deeper I see that a Funnel gets its active thread count
from LifecycleState which is initialized with an activeThreadCount of 0. I
do not believe Funnels ever update this. So, the short answer is that they
do not count towards the active (and therefore available) thread count.
The question arose due to backpressure building on a connection leading
into a funnel. I was curious how this could ever happen. (The output
connection of the funnel has a backpressure setting of 0 object/0 bytes.)