Hoogle Search

Within LTS Haskell 24.52 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. threadErrorQuark :: (HasCallStack, MonadIO m) => m Word32

    gi-glib GI.GLib.Structs.Thread

    No description available in the introspection data.

  2. threadExit :: (HasCallStack, MonadIO m) => Ptr () -> m ()

    gi-glib GI.GLib.Structs.Thread

    Terminates the current thread. If another thread is waiting for us using threadJoin then the waiting thread will be woken up and get retval as the return value of threadJoin. Calling threadExit with a parameter retval is equivalent to returning retval from the function func, as given to threadNew. You must only call threadExit from a thread that you created yourself with threadNew or related APIs. You must not call this function from a thread created with another threading library or or from within a ThreadPool.

  3. threadJoin :: (HasCallStack, MonadIO m) => Thread -> m (Ptr ())

    gi-glib GI.GLib.Structs.Thread

    Waits until thread finishes, i.e. the function func, as given to threadNew, returns or threadExit is called. If thread has already terminated, then threadJoin returns immediately. Any thread can wait for any other thread by calling threadJoin, not just its 'creator'. Calling threadJoin from multiple threads for the same thread leads to undefined behaviour. The value returned by func or given to threadExit is returned by this function. threadJoin consumes the reference to the passed-in thread. This will usually cause the Thread struct and associated resources to be freed. Use threadRef to obtain an extra reference if you want to keep the GThread alive beyond the threadJoin call.

  4. threadNew :: (HasCallStack, MonadIO m) => Maybe Text -> ThreadFunc -> m Thread

    gi-glib GI.GLib.Structs.Thread

    This function creates a new thread. The new thread starts by invoking func with the argument data. The thread will run until func returns or until threadExit is called from the new thread. The return value of func becomes the return value of the thread, which can be obtained with threadJoin. The name can be useful for discriminating threads in a debugger. It is not used for other purposes and does not have to be unique. Some systems restrict the length of name to 16 bytes. If the thread can not be created the program aborts. See threadTryNew if you want to attempt to deal with failures. If you are using threads to offload (potentially many) short-lived tasks, ThreadPool may be more appropriate than manually spawning and tracking multiple GThreads. To free the struct returned by this function, use threadUnref. Note that threadJoin implicitly unrefs the Thread as well. New threads by default inherit their scheduler policy (POSIX) or thread priority (Windows) of the thread creating the new thread. This behaviour changed in GLib 2.64: before threads on Windows were not inheriting the thread priority but were spawned with the default priority. Starting with GLib 2.64 the behaviour is now consistent between Windows and POSIX and all threads inherit their parent thread's priority. Since: 2.32

  5. threadRef :: (HasCallStack, MonadIO m) => Thread -> m Thread

    gi-glib GI.GLib.Structs.Thread

    Increase the reference count on thread. Since: 2.32

  6. threadSelf :: (HasCallStack, MonadIO m) => m Thread

    gi-glib GI.GLib.Structs.Thread

    This function returns the Thread corresponding to the current thread. Note that this function does not increase the reference count of the returned struct. This function will return a Thread even for threads that were not created by GLib (i.e. those created by other threading APIs). This may be useful for thread identification purposes (i.e. comparisons) but you must not use GLib functions (such as threadJoin) on these threads.

  7. threadTryNew :: (HasCallStack, MonadIO m) => Maybe Text -> ThreadFunc -> m Thread

    gi-glib GI.GLib.Structs.Thread

    This function is the same as threadNew except that it allows for the possibility of failure. If a thread can not be created (due to resource limits), error is set and Nothing is returned. Since: 2.32

  8. threadUnref :: (HasCallStack, MonadIO m) => Thread -> m ()

    gi-glib GI.GLib.Structs.Thread

    Decrease the reference count on thread, possibly freeing all resources associated with it. Note that each thread holds a reference to its Thread while it is running, so it is safe to drop your own reference to it if you don't need it anymore. Since: 2.32

  9. threadYield :: (HasCallStack, MonadIO m) => m ()

    gi-glib GI.GLib.Structs.Thread

    Causes the calling thread to voluntarily relinquish the CPU, so that other threads can run. This function is often used as a method to make busy wait less evil.

  10. module GI.GLib.Structs.ThreadPool

    The GThreadPool struct represents a thread pool. A thread pool is useful when you wish to asynchronously fork out the execution of work and continue working in your own thread. If that will happen often, the overhead of starting and destroying a thread each time might be too high. In such cases reusing already started threads seems like a good idea. And it indeed is, but implementing this can be tedious and error-prone. Therefore GLib provides thread pools for your convenience. An added advantage is, that the threads can be shared between the different subsystems of your program, when they are using GLib. To create a new thread pool, you use ThreadPool.new(). It is destroyed by threadPoolFree. If you want to execute a certain task within a thread pool, use threadPoolPush. To get the current number of running threads you call threadPoolGetNumThreads. To get the number of still unprocessed tasks you call threadPoolUnprocessed. To control the maximum number of threads for a thread pool, you use threadPoolGetMaxThreads. and threadPoolSetMaxThreads. Finally you can control the number of unused threads, that are kept alive by GLib for future use. The current number can be fetched with threadPoolGetNumUnusedThreads. The maximum number can be controlled by threadPoolGetMaxUnusedThreads and threadPoolSetMaxUnusedThreads. All currently unused threads can be stopped by calling threadPoolStopUnusedThreads.

Page 486 of many | Previous | Next