These are chat archives for ReactiveX/RxJava
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
I didn't look at any of that, but i can give you the theory :)
If the tree is immutable, you do not need locks. Instead, any insert will traverse the tree, and create a new tree. Usually kept efficient by reusing unmodified parts of the old tree. That way, when you modify the tree, you receive a new tree that you then need to communicate to any reader that's consuming the tree. Only once you've communicated the new tree root, they will be able to read your modifications.