breakpad/src/client/windows/crash_generation
Peter Collingbourne 6d001e7159 Do not use non-standard stdext::checked_array_iterator with libc++.
Bug: chromium:801780
Change-Id: Id1b0b2330d7d609bda62869bcda5bb2f6fde12bd
Reviewed-on: https://chromium-review.googlesource.com/872458
Reviewed-by: Mark Mentovai <mark@chromium.org>
2018-01-18 14:55:11 +00:00
..
client_info.cc The process uptime computation when the Windows out-of-process Crash Generation 2014-10-15 17:15:55 +00:00
client_info.h Fix Windows client compilation on mingw. 2014-11-03 17:05:39 +00:00
crash_generation_client.cc Fix -Wreorder warnings in the Windows code. 2015-07-10 20:24:33 +00:00
crash_generation_client.h Fix remaining processor/scoped_ptr.h references after r1096. 2013-01-22 17:20:42 +00:00
crash_generation_server.cc Fix Windows client ExceptionHandlerTest tests 2017-03-11 20:58:29 +00:00
crash_generation_server.h Refactor the Windows MinidumpGenerator interface to get rid of the overloads when generating dumps. 2014-01-17 22:39:11 +00:00
crash_generation.gyp Moving directory 'build' one level up as it collides with a file named 'BUILD' which happens to be in that same location in the Google source depot. 2014-04-10 17:37:20 +00:00
minidump_generator.cc Do not use non-standard stdext::checked_array_iterator with libc++. 2018-01-18 14:55:11 +00:00
minidump_generator.h Fix Windows client ExceptionHandlerTest tests 2017-03-11 20:58:29 +00:00
ReadMe.txt Fix newlines (#253). rs=ted.mielczarek 2008-04-07 21:50:57 +00:00

=========================================================================
 State machine transitions for the Crash Generation Server
=========================================================================

=========================================================================
               |
 STATE         | ACTIONS
               |
=========================================================================
 ERROR         | Clean up resources used to serve clients.
               | Always remain in ERROR state.
-------------------------------------------------------------------------
 INITIAL       | Connect to the pipe asynchronously.
               | If connection is successfully queued up asynchronously,
               | go into CONNECTING state.
               | If connection is done synchronously, go into CONNECTED
               | state.
               | For any unexpected problems, go into ERROR state.
-------------------------------------------------------------------------
 CONNECTING    | Get the result of async connection request.
               | If I/O is still incomplete, remain in the CONNECTING
               | state.
               | If connection is complete, go into CONNECTED state.
               | For any unexpected problems, go into DISCONNECTING state.
-------------------------------------------------------------------------
 CONNECTED     | Read from the pipe asynchronously.
               | If read request is successfully queued up asynchronously,
               | go into READING state.
               | For any unexpected problems, go into DISCONNECTING state.
-------------------------------------------------------------------------
 READING       | Get the result of async read request.
               | If read is done, go into READ_DONE state.
               | For any unexpected problems, go into DISCONNECTING state.
-------------------------------------------------------------------------
 READ_DONE     | Register the client, prepare the reply and write the
               | reply to the pipe asynchronously.
               | If write request is successfully queued up asynchronously,
               | go into WRITING state.
               | For any unexpected problems, go into DISCONNECTING state.
-------------------------------------------------------------------------
 WRITING       | Get the result of the async write request.
               | If write is done, go into WRITE_DONE state.
               | For any unexpected problems, go into DISCONNECTING state.
-------------------------------------------------------------------------
 WRITE_DONE    | Read from the pipe asynchronously (for an ACK).
               | If read request is successfully queued up asynchonously,
               | go into READING_ACK state.
               | For any unexpected problems, go into DISCONNECTING state.
-------------------------------------------------------------------------
 READING_ACK   | Get the result of the async read request.
               | If read is done, perform action for successful client
               | connection.
               | Go into DISCONNECTING state.
-------------------------------------------------------------------------
 DISCONNECTING | Disconnect from the pipe, reset the event and go into
               | INITIAL state and signal the event again. If anything
               | fails, go into ERROR state.
=========================================================================