packages feed

kazura-queue-0.1.0.3: kazura-queue.cabal

-- This file has been generated from package.yaml by hpack version 0.28.2.
--
-- see: https://github.com/sol/hpack
--
-- hash: ce64d904d9dcf6b3df16e486d6230a325fd9480d175e7c84c4a703eee11291b1

name:           kazura-queue
version:        0.1.0.3
synopsis:       Fast concurrent queues much inspired by unagi-chan
description:    \"kazura-queue\" provides an implementation of FIFO queue.
                It is faster than Chan, TQueue or TChan by the benefit of fetch-and-add
                instruction.
                .
                Main motivation of this package is to solve some difficulty of
                "unagi-chan" package.
                .
                - In "unagi-chan", the item in the queue/chan can be lost when async
                  exception is throwed to the read thread while waiting for read.
                  (Although it has handler to recover lost item,
                   it is difficult to keep FIFO in such case)
                .
                - In "unagi-chan", garbage items of the queue cannot be collected
                  immediately.
                  Since the buffer in the queue has the reference to the items until the
                  buffer is garbage-collected.
                .
                \"kazura-queue\" is slightly slower than "unagi-chan" instead of solving
                these issues.
                .
                \"kazura-queue\" lost broadcast function to improve the second issue.
                It means that kazura-queue is not \"Chan\" but is just \"Queue\".
category:       Concurrency
homepage:       https://github.com/asakamirai/kazura-queue#readme
bug-reports:    https://github.com/asakamirai/kazura-queue/issues
author:         Asakamirai
maintainer:     asakamirai_hackage@towanowa.net
copyright:      2016-2018 Asakamirai
license:        BSD3
license-file:   LICENSE
build-type:     Simple
cabal-version:  >= 1.10
extra-source-files:
    ChangeLog.md
    README.md

source-repository head
  type: git
  location: https://github.com/asakamirai/kazura-queue

library
  exposed-modules:
      Control.Concurrent.KazuraQueue
      Control.Concurrent.WVar
  other-modules:
      Paths_kazura_queue
  hs-source-dirs:
      src
  ghc-options: -Wall -O2
  build-depends:
      atomic-primops >=0.6
    , base >=4.7 && <5.0
    , primitive >=0.5.3
  default-language: Haskell2010

test-suite kazura-queue-doctest
  type: exitcode-stdio-1.0
  main-is: test/kazura-queue-doctest.hs
  other-modules:
      Paths_kazura_queue
  ghc-options: -Wall -O2 -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      QuickCheck >=2.8
    , atomic-primops >=0.6
    , base >=4.7 && <5.0
    , doctest
    , kazura-queue
    , primitive >=0.5.3
  default-language: Haskell2010

test-suite kazura-queue-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      KazuraQueueConcurrentSpec
      KazuraQueueSpec
      Test.Concurrent
      Test.Expectations
      Test.KazuraQueue
      Test.Util
      Test.WVar
      WVarConcurrentSpec
      WVarSpec
      Paths_kazura_queue
  hs-source-dirs:
      test
  ghc-options: -Wall -O2 -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      HUnit >=1.2
    , QuickCheck >=2.8
    , async >=2.0
    , atomic-primops >=0.6
    , base >=4.7 && <5.0
    , containers >=0.5
    , deepseq >=1.4
    , exceptions >=0.8
    , free >=4.12
    , hspec >=2.1
    , hspec-expectations >=0.7
    , kazura-queue
    , mtl >=2.2
    , primitive >=0.5.3
    , transformers >=0.4
  default-language: Haskell2010

benchmark kazura-queue-bench
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      Paths_kazura_queue
  hs-source-dirs:
      bench
  ghc-options: -Wall -O2 -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      atomic-primops >=0.6
    , base >=4.7 && <5.0
    , criterion >=1.1
    , kazura-queue
    , primitive >=0.5.3
    , stm >=2.4
  default-language: Haskell2010