@darnok what do you mean by parallel states
?
mount starts/stops state serially in order very close to the way they are compiled (that's how mount discovers them and records the order). hence if you run (mount/start)
and one of these states fails the "start chain of events" will abort with an exception.
I mean that they are not required by each other. I'm asking because I have this case that I have one state - cassandra session and the other - queue consumer. The cassandra client doesn't start, but the consumer starts (starts thread pool, etc.). So I have cassandra state not valid, and the consuming functions throw exceptions because cannot deref cassandra session var.
I'm sorry for confusion. It seems that the problem was elsewhere. I had in code a future
call and it was preventing shutdown of app.
@darnok ah.. ok, so the start function of one of the states "ate" the exception in the future?