通訊協定
生命週期
定義於 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
託管的控制代碼一律會傳送至下一個
這個元件的執行作業
回應
名稱 | 類型 |
---|---|
payload |
LifecycleOnEscrowRequest
|
停止
程序必須清除其狀態以進行終止。
在執行 Lifecycle
通訊協定時,必須關閉代管管道
準備終止使用程序在完成後應結束
以及清除所用資源由系統自行斟酌終止程序
再關閉 Lifecycle
管道。
要求
<空白>
資料表
LifecycleOnEscrowRequest 資源
定義於 fuchsia.process.lifecycle/lifecycle.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
outgoing_dir |
server_end<fuchsia.io/Directory>
|
收合傳出目錄伺服器端點。每當
元件再次啟動時,這項錯誤會做為
|
2 |
escrowed_dictionary |
fuchsia.component.sandbox/DictionaryRef
|
託管使用者定義的狀態。每次啟動元件時
就會再次傳回,當做 架構不會等待這些物件的任何信號。 範例假設元件需要託管一個代表事件的
一些昂貴的計算結果可建立
字典,將事件組合放入適當的鍵中
(例如 |