No description, website, or topics provided.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Cabochon can lose messages if they are not written to disk before the
client crashes.  This could be bad.  Here's a solution:

When the client starts up, send a start-up message.  Note that this
will be enqueued after any messages from before a crash.

0. If the client crashes here, it's OK because nothing has happened yet.

1. Before you begin an action, send a pre-message indicating that the
action is about to begin.

2. If the client crashes here, we can't tell if the ation has been
done yet.

3. Do the action

4. Likewise here.

5. Now enqueue a completed message.

6. If the client crashes here, it's OK because the message will be
sent when the client restarts.

On the server side, when you get a pre-message, store it.  When you
get the corresponding completed message, delete the stored
pre-message.  If you get a start-up message, look for any pre-messages
without corresponding completed messages.  Ask the client whether the
actions in fact went through, and if they did, process them.