packages feed

timer-wheel-1.0.0.1: src/TimerWheel/Internal/Alarm.hs

module TimerWheel.Internal.Alarm
  ( Alarm (..),
  )
where

import TimerWheel.Internal.Nanoseconds (Nanoseconds)
import TimerWheel.Internal.Prelude

data Alarm
  = OneShot !(IO ())
  | Recurring !(IO ()) {-# UNPACK #-} !Nanoseconds !(IORef Bool)
  | Recurring_ !(IO ()) {-# UNPACK #-} !Nanoseconds