Skip to content

Commit

Permalink
Relax monad in conversion to ForeignPtr
Browse files Browse the repository at this point in the history
  • Loading branch information
lehins committed Apr 2, 2020
1 parent 15c49b8 commit 16e2617
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
4 changes: 4 additions & 0 deletions pvar/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog for pvar

## 0.2.x

* Relax monad in conversion to ForeignPtr

## 0.2.0.0

* Rename `modifyPVar` to `fetchModifyPVar` and `modifyPVarM` to `fetchModifyPVarM`. This
Expand Down
2 changes: 1 addition & 1 deletion pvar/src/Data/Primitive/PVar.hs
Expand Up @@ -132,7 +132,7 @@ withPtrPVar pvar f =
-- | Convert `PVar` into a `ForeignPtr`, but only if it is backed by pinned memory.
--
-- @since 0.1.0
toForeignPtrPVar :: PVar IO a -> Maybe (ForeignPtr a)
toForeignPtrPVar :: PVar m a -> Maybe (ForeignPtr a)
toForeignPtrPVar pvar
| isPinnedPVar pvar = Just $ unsafeToForeignPtrPVar pvar
| otherwise = Nothing
Expand Down
4 changes: 2 additions & 2 deletions pvar/src/Data/Primitive/PVar/Unsafe.hs
Expand Up @@ -61,10 +61,10 @@ import Data.Typeable
-- | Convert `PVar` into a `ForeignPtr`, very unsafe if not backed by pinned memory.
--
-- @since 0.1.0
unsafeToForeignPtrPVar :: PVar IO a -> ForeignPtr a
unsafeToForeignPtrPVar :: PVar m a -> ForeignPtr a
unsafeToForeignPtrPVar pvar@(PVar mba#) =
case unsafeToPtrPVar pvar of
Ptr addr# -> ForeignPtr addr# (PlainPtr mba#)
Ptr addr# -> ForeignPtr addr# (PlainPtr (unsafeCoerce# mba#))
{-# INLINE unsafeToForeignPtrPVar #-}


Expand Down

0 comments on commit 16e2617

Please sign in to comment.