Foreign.Concurrent
| Авторские права | (c) Университет Глазго 2003 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | ffi@haskell.org |
| Устойчивость | предварительная |
| Переносимость | непереносимая (требуется конкурентность) |
| Безопасный Haskell | Надёжный |
| Язык | Haskell2010 |
Содержание
Описание
Типы данных и операции FFI, использующие или требующие конкурентности (только GHC).
Операции на основе конкурентности ForeignPtr
Эти функции обобщают свои аналоги в модуле Foreign.ForeignPtr для портативных операций, разрешая произвольные IO действия в качестве финализаторов. Эти финализаторы, необходимо, выполняются в отдельном потоке, см. Деструкторы, финализаторы и синхронизация Ханса Боема, POPL, 2003.
newForeignPtr :: Ptr a -> IO () -> IO (ForeignPtr a) Источник
Преобразует обычную ссылку на память в внешний объект, связав с ссылкой финализатор — заданный монадной операцией. Финализатор будет выполнен после того, как последняя ссылка на внешний объект будет удалена. Нет гарантии оперативности, и, фактически, нет гарантии, что финализатор вообще когда-либо выполнится.
addForeignPtrFinalizer :: ForeignPtr a -> IO () -> IO () Источник
Эта функция добавляет финализатор к заданному ForeignPtr. Финализатор будет запущен после того, как последняя ссылка на внешний объект будет удалена, но *перед* всеми ранее зарегистрированными финализаторами для того же объекта.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Foreign-Concurrent.html