I have a server written in Java that can receive a shut down signal while it's listening to, processing, and updating Firebase data. Since the Firebase threads are daemon threads in Java, I wanted to add some delay to the main thread to allow write operations to complete.
My current idea is the latch approach: use some concurrent counter to track pending writing operations, and let the main thread exit when there are none. The counter would get updated in onComplete()
callbacks, so I was wondering:
In the Firebase client, when might onComplete()
callbacks never get called? Is there reasonable danger of deadlock?