Several options for thread-local-storage (TLS) in Haskell.

Version on this page:0.2
LTS Haskell 13.22:0.2
Stackage Nightly 2019-05-21:0.2
Latest on Hackage:0.2

See all snapshots thread-local-storage appears in

BSD-3-Clause licensed by Ryan Newton
Maintained by

Module documentation for 0.2

There are no documented modules for this package.


Hackage Hackage Dependencies Haskell Programming Language BSD3 License Build

See .cabal file for description.

Here are some example benchmark results (on an Ivy Bridge i7-3770), with a typical time of 10.4 nanoseconds to get to a TLS variable given one IO thread per OS thread:

example benchmarks


0.2 [2018.07.01]

  • thread-local-storage now checks that threads calling Data.TLS.PThread.getTLS are bound threads, and throws a runtime error if this is not the case.

    For this reason, if you call getTLS in a thread spawned by forkOn, it will break with this release, so you are encouraged to switch uses of forkOn to forkOS.

0.1.2 [2017.06.23]

  • Fix the benchmark suite with criterion-1.2

0.1.1 [2017.01.22]

  • Expose Data.TLS.PThread.Internal. Note that there are no API guarantees whatsoever with this module, so use it with caution.
  • Add pthread to extra-libraries. Without it, some systems suffer from linker errors when using this library.
  • Fix build on GHC 7.6 and 7.8.
Depends on 2 packages:
Used by 1 package:
comments powered byDisqus