GHC.IORef
| Авторские права | (c) Университет Глазго 2008 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддержка | cvs-ghc@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая (расширения GHC) |
| Безопасный Haskell | Небезопасный |
| Язык | Haskell2010 |
Описание
Тип IORef
newtype IORef a Исходный код
Переменная со значением в IO монаде
Примеры использования
newIORef :: a -> IO (IORef a) Исходный код
Создать новую IORef
readIORef :: IORef a -> IO a Исходный код
Прочитать значение IORef
writeIORef :: IORef a -> a -> IO () Исходный код
Записать новое значение в IORef
atomicModifyIORef2Lazy :: IORef a -> (a -> (a, b)) -> IO (a, (a, b)) Исходный код
atomicModifyIORef2 :: IORef a -> (a -> (a, b)) -> IO (a, (a, b)) Исходный код
atomicModifyIORefLazy_ :: IORef a -> (a -> a) -> IO (a, a) Исходный код
Атомарное применение функции к содержимому IORef и возврат старого и нового значений. Результат функции не принудительно вычисляется. Так как это может привести к утечке памяти, обычно лучше использовать atomicModifyIORef'_.
atomicModifyIORef'_ :: IORef a -> (a -> a) -> IO (a, a) Исходный код
Атомарное применение функции к содержимому IORef и возврат старого и нового значений. Результат функции принудительно вычисляется.
atomicModifyIORefP :: IORef a -> (a -> (a, b)) -> IO b Исходный код
Вариант atomicModifyIORef , где результат функции принудительно вычисляется.
atomicSwapIORef :: IORef a -> a -> IO a Исходный код
Атомарная замена содержимого IORef, возвращая старое содержимое.
atomicModifyIORef' :: IORef a -> (a -> (a, b)) -> IO b Исходный код
Строгая версия atomicModifyIORef. Это принудительно вычисляет значение, хранящееся в IORef, и возвращаемое значение. Новое значение устанавливается в IORef до принудительного вычисления возвращаемого значения. Например,
atomicModifyIORef' ref (x -> (x+1, undefined))
увеличит IORef и затем выбросит исключение в вызывающей потоке.
С: base-4.6.0.0
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/GHC-IORef.html