public static void notifyEOS( String sourcename, int queueSize )
    {
        synchronized( streamListenersLock )
        {
            if( streamListeners == null )
                return;
        }
        final String srcName = sourcename;
        final int qSize = queueSize;

        new Thread()
        {
            @Override
            public void run()
            {
                synchronized( streamListenersLock )
                {
                    if( streamListeners == null )
                        return;
                    ListIterator<IStreamListener> i = streamListeners.listIterator();
                    IStreamListener streamListener;
                    while( i.hasNext() )
                    {
                        streamListener = i.next();
                        if( streamListener == null )
                            i.remove();
                        else
                            streamListener.endOfStream( srcName, qSize );
                    }
                }
            }
        }.start();
    }