GHC.StaticPtr
| Авторские права | (C) 2014 I/O Tweag |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддерживающий | ghc-devs@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая (расширения GHC) |
| Безопасный Haskell | Нет |
| Язык | Haskell2010 |
Описание
Символические ссылки на значения.
Ссылки на значения обычно реализуются с помощью адресов памяти, и это практично при обмене значениями между различными частями одного процесса.
Однако, когда значения передаются между разными процессами, работающими, возможно, на разных машинах, адреса больше не полезны, так как каждый процесс может использовать разные адреса для хранения заданного значения.
Для решения этой проблемы ссылки, предоставляемые этим модулем, предлагают ключ, который можно использовать для поиска значений в каждом процессе. Каждый процесс поддерживает глобальную таблицу ссылок, которую можно найти по заданному ключу. Эта таблица известна как таблица статических указателей. Затем ссылка может быть разыменована для получения значения.
Различные взаимодействующие процессы должны договориться о ключах, используемых для ссылки на значения в таблице статических указателей, иначе поиск завершится неудачно. Только процессы, запущенные из одного и того же двоичного файла программы, гарантированно будут использовать один и тот же набор ключей.
Ссылка на значение типа a.
Примеры
| IsStatic StaticPtr Source | С момента: base-4.9.0.0 |
Определено в GHC.Internal.StaticPtr МетодыfromStaticPtr :: Typeable a => StaticPtr a -> StaticPtr a Source | |
deRefStaticPtr :: StaticPtr a -> a Source
Разыменование статического указателя.
type StaticKey = Fingerprint Source
Ключ для StaticPtr , который можно сериализовать и использовать с unsafeLookupStaticPtr.
staticKey :: StaticPtr a -> StaticKey Source
Ключ, который можно использовать для поиска заданного StaticPtr.
unsafeLookupStaticPtr :: StaticKey -> IO (Может (StaticPtr a)) Source
Поиск StaticPtr по его StaticKey.
Если StaticPtr не найден, возвращается Nothing.
Эта функция небезопасна, так как поведение программы неопределено, если тип возвращенного StaticPtr не соответствует ожидаемому.
data StaticPtrInfo Source
Разное информация, доступная для отладки.
Конструкторы
| StaticPtrInfo | |
Поля
| |
Примеры
| Show StaticPtrInfo Source | С момента: base-4.8.0.0 |
Определено в GHC.Internal.StaticPtr МетодыshowsPrec :: Целое -> StaticPtrInfo -> ShowS Source show :: StaticPtrInfo -> Строка Source showList :: [StaticPtrInfo] -> ShowS Source | |
staticPtrInfo :: StaticPtr a -> StaticPtrInfo Source
Информация о заданном StaticPtr.
staticPtrKeys :: IO [StaticKey] Source
Список всех известных ключей.
class IsStatic (p :: Тип -> Тип) where Source
Класс для вещей, создаваемых из статических указателей.
GHC оборачивает каждое использование ключевого слова static с fromStaticPtr. Поскольку ключевое слово static требует, чтобы его аргумент был экземпляром Typeable, fromStaticPtr также несет ограничение Typeable.
Методы
fromStaticPtr :: Typeable a => StaticPtr a -> p a Source
Примеры
| IsStatic StaticPtr Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.StaticPtr МетодыfromStaticPtr :: Typeable a => StaticPtr a -> StaticPtr a Исходный код | |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-StaticPtr.html