Spec-Zone.ru › Nim

std/isolation

Исходный код Редактировать

Этот модуль реализует тип Isolated[T] для безопасного создания изолированных подграфов, которые могут быть эффективно переданы в разные каналы и потоки.

Предупреждение: Этот модуль экспериментальный, и его интерфейс может измениться.

Типы

Isolated[T] {.sendable.} = object
Данные, изолированные от других, могут быть только перемещены, а не скопированы. Исходный код Редактировать

Процедуры

proc `=copy`[T](dest: var Isolated[T]; src: Isolated[T]) {.error.}
Исходный код Редактировать
proc `=destroy`[T](dest: var Isolated[T]) {.inline, ...raises: [].}
Исходный код Редактировать
proc `=sink`[T](dest: var Isolated[T]; src: Isolated[T]) {.inline.}
Исходный код Редактировать
func extract[T](src: var Isolated[T]): T
Возвращает внутреннее значение src. Значение перемещается из src. Исходный код Редактировать
func isolate[T](value: sink T): Isolated[T] {.magic: "Isolate", ...raises: [],
    tags: [], forbids: [].}

Создаёт изолированный подграф из выражения value. Проверка изоляции выполняется во время компиляции.

Для получения более подробной информации, пожалуйста, обратитесь к https://github.com/nim-lang/RFCs/issues/244.

Исходный код Редактировать
func unsafeIsolate[T](value: sink T): Isolated[T]
Создаёт изолированный подграф из выражения value.
Предупреждение: Процедура не проверяет, является ли value изолированным.
Исходный код Редактировать

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/isolation.html

Spec-Zone.ru

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