Index: handler/crashpad_handler.ad |
diff --git a/handler/crashpad_handler.ad b/handler/crashpad_handler.ad |
index f359af769f299de6d9a57c499efd98b40c1bdc05..e7fd66ba7466e01f1b4022a8ae90082acafbbcd2 100644 |
--- a/handler/crashpad_handler.ad |
+++ b/handler/crashpad_handler.ad |
@@ -50,13 +50,15 @@ any upload in progress to complete. +SIGTERM+ is normally sent by launchd(8) |
when it determines that the server should exit. |
On Windows, clients register with this server by communicating with it via the |
-named pipe identified by the *--pipe-name* argument. During registration, a |
-client provides the server with an OS event object that it will signal should it |
-crash. The server obtains the client’s process handle and waits on the crash |
-event object for a crash, as well as the client’s process handle for the client |
-to exit cleanly without crashing. When the server loses all clients and |
-*--persistent* is not specified, it exits after allowing any upload in progress |
-to complete. |
+named pipe identified by the *--pipe-name* argument. Alternatively, the server |
+can create a new pipe with a random name and inform a client of this name via |
+the *--handshake-handle* mechanism; clients may then register by communicating |
+with it via that named pipe. During registration, a client provides the server |
+with an OS event object that it will signal should it crash. The server obtains |
+the client’s process handle and waits on the crash event object for a crash, as |
+well as the client’s process handle for the client to exit cleanly without |
+crashing. When a server started via the *--handshake-handle* mechanism loses all |
+of its clients, it exits after allowing any upload in progress to complete. |
It is not normally appropriate to invoke this program directly. Usually, it will |
be invoked by a Crashpad client using the Crashpad client library, or started by |
@@ -105,16 +107,24 @@ tool is started by launchd(8) as a result of a message being sent to a service |
declared in a job’s +MachServices+ dictionary (see launchd.plist(5)). The |
service name may also be completely unknown to the system. |
-*--persistent*:: |
-Continue running after the last client exits. If this option is not specified, |
-this server will exit as soon as it has no clients, although on startup, it |
-always waits for at least one client to connect. This option is only valid on |
-Windows. |
+*--handshake-handle*='HANDLE':: |
+Perform the handshake with the initial client on the HANDLE at 'HANDLE'. Either |
+this option or *--pipe-name*, but not both, is required. This option is only |
+valid on Windows. |
++ |
+When this option is present, the server creates a new named pipe at a random |
+name and informs its client of the name. The server waits for at least one |
+client to register, and exits when all clients have exited, after waiting for |
+any uploads in progress to complete. |
*--pipe-name*='PIPE':: |
Listen on the given pipe name for connections from clients. 'PIPE' must be of |
-the form +\\.\pipe\<somename>+. This option is required. This option is only |
-valid on Windows. |
+the form +\\.\pipe\<somename>+. Either this option or *--handshake-handle*, but |
+not both, is required. This option is only valid on Windows. |
++ |
+When this option is present, the server creates a named pipe at 'PIPE', a name |
+known to both the server and its clients. The server continues running even |
+after all clients have exited. |
*--reset-own-crash-exception-port-to-system-default*:: |
Causes the exception handler server to set its own crash handler to the system |