name:                scheduler
version:             2.0.0.1
x-revision: 1
synopsis:            Work stealing scheduler.
description:         A work stealing scheduler that is designed for parallelization of heavy work loads. It was primarily developed for [massiv](https://github.com/lehins/massiv) array library, but it is general enough to be useful for any computation that fits the model of few workers and many jobs.
homepage:            https://github.com/lehins/haskell-scheduler
license:             BSD3
license-file:        LICENSE
author:              Alexey Kuleshevich
maintainer:          alexey@kuleshevi.ch
copyright:           2018-2021 Alexey Kuleshevich
category:            Parallelism, Concurrency
build-type:          Simple
extra-source-files:  README.md
                   , CHANGELOG.md
cabal-version:       >=1.10

library
  hs-source-dirs:      src
  exposed-modules:     Control.Scheduler
                     , Control.Scheduler.Global
                     , Control.Scheduler.Internal
                     , Control.Scheduler.Computation
                     , Control.Scheduler.Queue
                     , Control.Scheduler.Types
  build-depends:       base           >= 4.9 && < 5
                     , atomic-primops
                     , deepseq
                     , exceptions
                     , unliftio-core  >=0.1.1.0
                     , primitive      >= 0.7.1
                     , pvar           < 2.0
  default-language:    Haskell2010
  ghc-options:         -Wall -Wno-simplifiable-class-constraints


test-suite tests
  type:               exitcode-stdio-1.0
  hs-source-dirs:     tests
  main-is:            Main.hs
  other-modules:      Spec
                    , Control.SchedulerSpec
  build-tool-depends: hspec-discover:hspec-discover
  build-depends:      base
                    , deepseq
                    , genvalidity-hspec
                    , scheduler
                    , hspec
                    , QuickCheck < 2.15
                    , unliftio

  default-language:   Haskell2010
  ghc-options:        -Wall -fno-warn-orphans -threaded -with-rtsopts=-N

test-suite doctests
  type:             exitcode-stdio-1.0
  hs-source-dirs:   tests
  main-is:          doctests.hs
  build-depends: base
  if impl(ghc >= 8.2) && impl(ghc < 8.10)
    build-depends: doctest           >=0.15
                 , mwc-random
                 , scheduler
                 , vector
  default-language:    Haskell2010

source-repository head
  type:     git
  location: https://github.com/lehins/scheduler
  subdir:   scheduler