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 :: IsTaskPool o => o -> IO TaskPool
- noTaskPool :: Maybe TaskPool
- data TaskPoolCleanupMethodInfo
- taskPoolCleanup :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> m ()
- data TaskPoolJoinMethodInfo
- taskPoolJoin :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> Ptr () -> m ()
- taskPoolNew :: (HasCallStack, MonadIO m) => m TaskPool
- data TaskPoolPrepareMethodInfo
- taskPoolPrepare :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> m ()
- data TaskPoolPushMethodInfo
- taskPoolPush :: (HasCallStack, MonadIO m, IsTaskPool a) => a -> TaskPoolFunction -> m (Ptr ())
Exported types
Constructors
TaskPool (ManagedPtr TaskPool) |
Instances
GObject TaskPool Source # | |
IsObject TaskPool Source # | |
IsTaskPool TaskPool Source # | |
IsObject TaskPool Source # | |
((~) * info (ResolveTaskPoolMethod t TaskPool), MethodInfo * info TaskPool p) => IsLabel t (TaskPool -> p) Source # | |
((~) * info (ResolveTaskPoolMethod t TaskPool), MethodInfo * info TaskPool p) => IsLabelProxy t (TaskPool -> p) Source # | |
HasAttributeList * TaskPool Source # | |
type AttributeList TaskPool Source # | |
type SignalList TaskPool Source # | |
class GObject o => IsTaskPool o Source #
Instances
(GObject a, UnknownAncestorError Constraint TaskPool a) => IsTaskPool a Source # | |
IsTaskPool TaskPool Source # | |
toTaskPool :: IsTaskPool o => o -> IO TaskPool Source #
Methods
cleanup
data TaskPoolCleanupMethodInfo Source #
Instances
((~) * signature (m ()), MonadIO m, IsTaskPool a) => MethodInfo * TaskPoolCleanupMethodInfo a signature Source # | |
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
data TaskPoolJoinMethodInfo Source #
Instances
((~) * signature (Ptr () -> m ()), MonadIO m, IsTaskPool a) => MethodInfo * TaskPoolJoinMethodInfo a signature Source # | |
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
data TaskPoolPrepareMethodInfo Source #
Instances
((~) * signature (m ()), MonadIO m, IsTaskPool a) => MethodInfo * TaskPoolPrepareMethodInfo a signature Source # | |
Arguments
:: (HasCallStack, MonadIO m, IsTaskPool a) | |
=> a |
|
-> m () | (Can throw |
Prepare the taskpool for accepting taskPoolPush
operations.
MT safe.
push
data TaskPoolPushMethodInfo Source #
Instances
((~) * signature (TaskPoolFunction -> m (Ptr ())), MonadIO m, IsTaskPool a) => MethodInfo * TaskPoolPushMethodInfo a signature Source # | |
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
.