I think that it does, right now, the monitor thread doesn't shutdown properly because of the way that it is being tracked. This behavior is largely invisible because it would have to be run in debug mode for it to be immediately apparent. IMHO, anything that can be run as a thread against in LocalStreamsBuilder that has a while(this.isRunning) { } loop, should have an interface that allows them to be terminated generically. Otherwise, it is possible to miss the destruction of it. With that style of loop, even through references are terminated, it will continue to run unless the flag is set and it can escape the function.