sdl2-2.5.2.0: Both high- and low-level bindings to the SDL library (version 2.0.6+).
Safe HaskellSafe
LanguageHaskell2010

SDL.Raw.Thread

Synopsis

Thread Management

createThread :: MonadIO m => ThreadFunction -> CString -> m (Ptr ()) Source #

detachThread :: MonadIO m => Ptr Thread -> m () Source #

getThreadID :: MonadIO m => Ptr Thread -> m ThreadID Source #

getThreadName :: MonadIO m => Ptr Thread -> m CString Source #

setThreadPriority :: MonadIO m => ThreadPriority -> m CInt Source #

tlsCreate :: MonadIO m => m TLSID Source #

tlsGet :: MonadIO m => TLSID -> m (Ptr ()) Source #

tlsSet :: MonadIO m => TLSID -> Ptr () -> FunPtr (Ptr () -> IO ()) -> m CInt Source #

threadID :: MonadIO m => m ThreadID Source #

waitThread :: MonadIO m => Ptr Thread -> Ptr CInt -> m () Source #

Thread Synchronization Primitives

condBroadcast :: MonadIO m => Ptr Cond -> m CInt Source #

condSignal :: MonadIO m => Ptr Cond -> m CInt Source #

condWait :: MonadIO m => Ptr Cond -> Ptr Mutex -> m CInt Source #

condWaitTimeout :: MonadIO m => Ptr Cond -> Ptr Mutex -> Word32 -> m CInt Source #

createCond :: MonadIO m => m (Ptr Cond) Source #

createMutex :: MonadIO m => m (Ptr Mutex) Source #

createSemaphore :: MonadIO m => Word32 -> m (Ptr Sem) Source #

destroyCond :: MonadIO m => Ptr Cond -> m () Source #

destroyMutex :: MonadIO m => Ptr Mutex -> m () Source #

destroySemaphore :: MonadIO m => Ptr Sem -> m () Source #

lockMutex :: MonadIO m => Ptr Mutex -> m CInt Source #

semPost :: MonadIO m => Ptr Sem -> m CInt Source #

semTryWait :: MonadIO m => Ptr Sem -> m CInt Source #

semValue :: MonadIO m => Ptr Sem -> m Word32 Source #

semWait :: MonadIO m => Ptr Sem -> m CInt Source #

semWaitTimeout :: MonadIO m => Ptr Sem -> Word32 -> m CInt Source #

tryLockMutex :: MonadIO m => Ptr Mutex -> m CInt Source #

unlockMutex :: MonadIO m => Ptr Mutex -> m CInt Source #

Atomic Operations

atomicAdd :: MonadIO m => Ptr Atomic -> CInt -> m CInt Source #

atomicCAS :: MonadIO m => Ptr Atomic -> CInt -> CInt -> m Bool Source #

atomicCASPtr :: MonadIO m => Ptr (Ptr ()) -> Ptr () -> Ptr () -> m Bool Source #

atomicDecRef :: Ptr Atomic -> IO Bool Source #

atomicGet :: MonadIO m => Ptr Atomic -> m CInt Source #

atomicGetPtr :: MonadIO m => Ptr (Ptr ()) -> m (Ptr ()) Source #

atomicIncRef :: Ptr Atomic -> IO CInt Source #

atomicLock :: MonadIO m => Ptr SpinLock -> m () Source #

atomicSet :: MonadIO m => Ptr Atomic -> CInt -> m CInt Source #

atomicSetPtr :: MonadIO m => Ptr (Ptr ()) -> Ptr () -> m (Ptr ()) Source #

atomicTryLock :: MonadIO m => Ptr SpinLock -> m Bool Source #

atomicUnlock :: MonadIO m => Ptr SpinLock -> m () Source #