ghcide-2.9.0.0: The core of an IDE

Safe Haskell | None
Language | GHC2021

Development.IDE.Core.WorkerThread

Synopsis

- withWorkerQueue :: (t -> IO a) -> ContT () IO (TQueue t)
- awaitRunInThread :: TQueue (IO ()) -> IO result -> IO result

# Documentation

withWorkerQueue :: (t -> IO a) -> ContT () IO (TQueue t) #

`withWorkerQueue` creates a new `TQueue`, and launches a worker thread which polls the queue for requests and runs the given worker function on them.

awaitRunInThread :: TQueue (IO ()) -> IO result -> IO result #

`awaitRunInThread` queues up an `IO` action to be run by a worker thread, and then blocks until the result is computed.