periodicCheckup :: GlobalState -> IO ()
periodicCheckup globalState = forever $ do
  threadDelay 1000000
  torrents <- atomically $ readTVar (globalStateTorrents globalState)
  traverse_ (flip writeChan Checkup . torrentStateSharedMessages) torrents
periodicCheckup :: GlobalState -> IO ()
periodicCheckup globalState = forever $ do
  threadDelay 1000000
  torrents <- atomically $ readTVar (globalStateTorrents globalState)
  traverse_ (flip writeChan Checkup . torrentStateSharedMessages) torrents
periodicCheckup globalState = forever $ do
  threadDelay 1000000
  torrents <- atomically $ readTVar (globalStateTorrents globalState)
  traverse_ (flip writeChan Checkup . torrentStateSharedMessages) torrents