toolkit/crashreporter/google-breakpad/src/client/windows/crash_generation/ReadMe.txt

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/crashreporter/google-breakpad/src/client/windows/crash_generation/ReadMe.txt	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,58 @@
     1.4 +=========================================================================
     1.5 + State machine transitions for the Crash Generation Server
     1.6 +=========================================================================
     1.7 +
     1.8 +=========================================================================
     1.9 +               |
    1.10 + STATE         | ACTIONS
    1.11 +               |
    1.12 +=========================================================================
    1.13 + ERROR         | Clean up resources used to serve clients.
    1.14 +               | Always remain in ERROR state.
    1.15 +-------------------------------------------------------------------------
    1.16 + INITIAL       | Connect to the pipe asynchronously.
    1.17 +               | If connection is successfully queued up asynchronously,
    1.18 +               | go into CONNECTING state.
    1.19 +               | If connection is done synchronously, go into CONNECTED
    1.20 +               | state.
    1.21 +               | For any unexpected problems, go into ERROR state.
    1.22 +-------------------------------------------------------------------------
    1.23 + CONNECTING    | Get the result of async connection request.
    1.24 +               | If I/O is still incomplete, remain in the CONNECTING
    1.25 +               | state.
    1.26 +               | If connection is complete, go into CONNECTED state.
    1.27 +               | For any unexpected problems, go into DISCONNECTING state.
    1.28 +-------------------------------------------------------------------------
    1.29 + CONNECTED     | Read from the pipe asynchronously.
    1.30 +               | If read request is successfully queued up asynchronously,
    1.31 +               | go into READING state.
    1.32 +               | For any unexpected problems, go into DISCONNECTING state.
    1.33 +-------------------------------------------------------------------------
    1.34 + READING       | Get the result of async read request.
    1.35 +               | If read is done, go into READ_DONE state.
    1.36 +               | For any unexpected problems, go into DISCONNECTING state.
    1.37 +-------------------------------------------------------------------------
    1.38 + READ_DONE     | Register the client, prepare the reply and write the
    1.39 +               | reply to the pipe asynchronously.
    1.40 +               | If write request is successfully queued up asynchronously,
    1.41 +               | go into WRITING state.
    1.42 +               | For any unexpected problems, go into DISCONNECTING state.
    1.43 +-------------------------------------------------------------------------
    1.44 + WRITING       | Get the result of the async write request.
    1.45 +               | If write is done, go into WRITE_DONE state.
    1.46 +               | For any unexpected problems, go into DISCONNECTING state.
    1.47 +-------------------------------------------------------------------------
    1.48 + WRITE_DONE    | Read from the pipe asynchronously (for an ACK).
    1.49 +               | If read request is successfully queued up asynchonously,
    1.50 +               | go into READING_ACK state.
    1.51 +               | For any unexpected problems, go into DISCONNECTING state.
    1.52 +-------------------------------------------------------------------------
    1.53 + READING_ACK   | Get the result of the async read request.
    1.54 +               | If read is done, perform action for successful client
    1.55 +               | connection.
    1.56 +               | Go into DISCONNECTING state.
    1.57 +-------------------------------------------------------------------------
    1.58 + DISCONNECTING | Disconnect from the pipe, reset the event and go into
    1.59 +               | INITIAL state and signal the event again. If anything
    1.60 +               | fails, go into ERROR state.
    1.61 +=========================================================================

mercurial