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