func processEvents()

in go-example-crash-uploader-extension/main.go [66:96]


func processEvents(ctx context.Context) {
	var requestID string
	for {
		select {
		case <-ctx.Done():
			return
		default:
			println(printPrefix, "Waiting for event...")
			res, err := extensionClient.NextEvent(ctx)
			if err != nil {
				println(printPrefix, "Error:", err.Error())
				println(printPrefix, "Exiting")
				return
			}
			println(printPrefix, "Received event:", prettyPrint(res))
			// Exit if we receive a SHUTDOWN event
			if res.EventType == extension.Shutdown {
				println(printPrefix, "Received SHUTDOWN event")
				numFiles, err := renameFilesWithSubstring("/tmp", "core", fmt.Sprintf("dump.upload.%s", requestID))
				if err != nil {
					extensionClient.InitError(ctx, err.Error())
				}
				println(printPrefix, "Renamed", numFiles, "files")
				println(printPrefix, "Exiting")
				return
			} else if res.EventType == extension.Invoke {
				requestID = res.RequestID
			}
		}
	}
}