fuchsia.process.lifecycle

新增:7

通訊協定

生命週期

定義於 fuchsia.process.lifecycle/lifecycle.fidl

元件可以實作生命週期通訊協定,接收生命週期通知 事件。也能在架構中儲存部分狀態,以便再遞送至 下次啟動元件時 (這種做法稱為「託管」),

ELF 執行器會使用這個通訊協定傳送生命週期變更訊息 每個元件,如要進一步瞭解此通訊協定的使用方式,請參閱: https://fuchsia.dev/fuchsia-src/concepts/components/v2/elf_runner#lifecycle

OnEscrow

元件離開前不久託管狀態。

ELF 執行元件收到此事件後,就會與 等到元件目前的執行作業 完成,然後在 ZX_CHANNEL_READABLE 發生時再次啟動元件。 信號是在 outgoing_dir觀察到的。

重複呼叫會取代舊託管的值。我們不建議這麼做。

透過 OnEscrow 託管的控制代碼一律會傳送至下一個 這個元件的執行作業

新增時間:HEAD

回應

名稱類型
payload LifecycleOnEscrowRequest

停止

程序必須清除其狀態以進行終止。 在執行 Lifecycle 通訊協定時,必須關閉代管管道 準備終止使用程序在完成後應結束 以及清除所用資源由系統自行斟酌終止程序 再關閉 Lifecycle 管道。

要求

<空白>

資料表

LifecycleOnEscrowRequest 資源

定義於 fuchsia.process.lifecycle/lifecycle.fidl

序數欄位類型說明
outgoing_dir server_end<fuchsia.io/Directory>

收合傳出目錄伺服器端點。每當 元件再次啟動時,這項錯誤會做為 PA_DIRECTORY_REQUEST 個程序參數項目。

escrowed_dictionary fuchsia.component.sandbox/DictionaryRef

託管使用者定義的狀態。每次啟動元件時 就會再次傳回,當做 PA_ESCROWED_DICTIONARY processargs 項目。

架構不會等待這些物件的任何信號。

範例

假設元件需要託管一個代表事件的 一些昂貴的計算結果可建立 字典,將事件組合放入適當的鍵中 (例如 "my_event_pair"),然後在啟動時檢查該項目。