| Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
| Safe Haskell | None |
| Language | Haskell2010 |
GI.Gst.Objects.TaskPool
Description
This object provides an abstraction for creating threads. The default implementation uses a regular GThreadPool to start tasks.
Subclasses can be made to create custom threads.
- newtype TaskPool = TaskPool (ManagedPtr TaskPool)
- class GObject o => IsTaskPool o
- toTaskPool :: (MonadIO m, IsTaskPool o) => o -> m TaskPool
- noTaskPool :: Maybe TaskPool
- taskPoolCleanup :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> m ()
- taskPoolJoin :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> Ptr () -> m ()
- taskPoolNew :: (HasCallStack, MonadIO m) => m TaskPool
- taskPoolPrepare :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> m ()
- taskPoolPush :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> TaskPoolFunction -> m (Ptr ())
Exported types
Constructors
| TaskPool (ManagedPtr TaskPool) |
class GObject o => IsTaskPool o Source #
Instances
| (GObject a, UnknownAncestorError Constraint TaskPool a) => IsTaskPool a Source # | |
| IsTaskPool TaskPool Source # | |
toTaskPool :: (MonadIO m, IsTaskPool o) => o -> m TaskPool Source #
Methods
cleanup
Arguments
| :: (HasCallStack, MonadIO m, IsTaskPool a) | |
| => a |
|
| -> m () |
Wait for all tasks to be stopped. This is mainly used internally to ensure proper cleanup of internal data structures in test suites.
MT safe.
join
Arguments
| :: (HasCallStack, MonadIO m, IsTaskPool a) | |
| => a |
|
| -> Ptr () |
|
| -> m () |
Join a task and/or return it to the pool. id is the id obtained from
taskPoolPush.
new
Arguments
| :: (HasCallStack, MonadIO m) | |
| => m TaskPool | Returns: a new |
Create a new default task pool. The default task pool will use a regular GThreadPool for threads.
prepare
Arguments
| :: (HasCallStack, MonadIO m, IsTaskPool a) | |
| => a |
|
| -> m () | (Can throw |
Prepare the taskpool for accepting taskPoolPush operations.
MT safe.
push
Arguments
| :: (HasCallStack, MonadIO m, IsTaskPool a) | |
| => a |
|
| -> TaskPoolFunction |
|
| -> m (Ptr ()) | Returns: a pointer that should be used
for the gst_task_pool_join function. This pointer can be |
Start the execution of a new thread from pool.