Spec-Zone.ru › Pony

Опекун

[Источник]

Опекун хранит набор акторов для удаления. Когда опекун удаляется, он удаляет акторов из своего набора и затем очищает набор.

Пример программы

Представьте себе программу с 3 акторами, которые необходимо остановить при получении сигнала TERM. Мы можем настроить Опекуна, который знает о каждом из наших акторов, и когда поступает сигнал TERM, он удаляется.

use "bureaucracy"
use "signals"

actor Actor1
  be dispose() => None // dispose of resources here.

actor Actor2
  be dispose() => None // dispose of resources here.

actor Actor3
  be dispose() => None // dispose of resources here.

actor Main
  new create(env: Env) =>
    let actor1 = Actor1
    let actor2 = Actor2
    let actor3 = Actor3

    let custodian = Custodian
    custodian(actor1)
    custodian(actor2)
    custodian(actor3)

    SignalHandler(TermHandler(custodian), Sig.term())

class TermHandler is SignalNotify
  let _custodian: Custodian

  new iso create(custodian: Custodian) =>
    _custodian = custodian

  fun ref apply(count: U32): Bool =>
    _custodian.dispose()
    true
actor tag Custodian

Конструкторы

create

[Источник]

new tag create()
: Custodian tag^

Возвращаемое значение

  • Опекун тег^

Открытые методы

apply

[Источник]

Добавить актора для удаления.

be apply(
  worker: DisposableActor tag)

Параметры

  • worker: УправляемыйАктор тег

remove

[Источник]

Удаляет актора из набора объектов для удаления.

be remove(
  worker: DisposableActor tag)

Параметры

  • worker: УправляемыйАктор тег

dispose

[Источник]

Удалить акторов в наборе и затем очистить набор.

be dispose()

© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/bureaucracy-Custodian

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API