Spec-Zone.ru › Haskell 9

Foreign.ForeignPtr.Unsafe

Авторское право (c) Университет Глазго, 2001
Лицензия в стиле BSD (см. файл libraries/base/LICENSE)
Сопровождающий ffi@haskell.org
Стабильность предварительная
Переносимость переносимый
Безопасный Haskell Нет
Язык Haskell2010

Содержание

  • Небезопасные низкоуровневые операции

Описание

Тип ForeignPtr и операции. Этот модуль является частью интерфейса внешних функций (FFI) и обычно импортируется через модуль Foreign.

Только небезопасный API.

Небезопасные низкоуровневые операции

unsafeForeignPtrToPtr :: ForeignPtr a -> Ptr a Исходный код

Эта функция извлекает компонент-указатель из внешнего указателя. Это потенциально опасная операция: если аргументом unsafeForeignPtrToPtr является последнее использование данного внешнего указателя, то будут выполнены его финализатор(ы), что может сделать только что полученный обычный указатель недействительным. Поэтому touchForeignPtr необходимо использовать везде, где нужно гарантировать, что указатель продолжает существовать, то есть используется ещё где-либо.

Чтобы избежать трудноуловимых ошибок в коде, при написании кода маршалинга вручную предпочтительно использовать withForeignPtr, а не сочетание unsafeForeignPtrToPtr и touchForeignPtr. Однако последние процедуры иногда предпочтительны в коде маршалинга, сгенерированном инструментами.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Foreign-ForeignPtr-Unsafe.html

Spec-Zone.ru

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