freshJobId :: TVar Int -> IO Int
freshJobId countT = atomically $ do
  c <- readTVar countT
  writeTVar countT (c + 1)
  return c

{- |
  The same as `performWith`, but the original job is retried each time.
-}
freshJobId :: TVar Int -> IO Int
freshJobId countT = atomically $ do
  c <- readTVar countT
  writeTVar countT (c + 1)
  return c

{- |
  The same as `performWith`, but the original job is retried each time.
-}
freshJobId countT = atomically $ do
  c <- readTVar countT
  writeTVar countT (c + 1)
  return c

{- |
  The same as `performWith`, but the original job is retried each time.
-}