Wiki Page Content

Differences between revisions 7 and 8
Revision 7 as of 2010-10-18 02:06:29
Size: 798
Editor: SheenaSmith
Comment: update content - pointers, structs
Revision 8 as of 2013-08-12 04:48:03
Size: 1360
Editor: Sam Lantinga
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
#pragma disable-camelcase
||<tablewidth="100%" style="color: #FF0000;" :> DRAFT||
#pragma camelcase off
Line 16: Line 15:
||'''cond'''||^the applicable condition variable^ ???|| ||'''cond'''||the condition variable to signal||
Line 23: Line 22:
You can add your code example here SDL_bool condition = SDL_FALSE;
SDL_mutex *lock;
SDL_cond *cond;

lock = SDL_CreateMutex();
cond = SDL_CreateCond();
.
.
Thread A:
    SDL_LockMutex(lock);
    while ( !condition ) {
        SDL_CondWait(cond, lock);
    }
    SDL_UnlockMutex(lock);

Thread B:
    SDL_LockMutex(lock);
    while ( !condition ) {
        SDL_CondWait(cond, lock);
    }
    SDL_UnlockMutex(lock);

Thread C:
    SDL_LockMutex(lock);
    ...
    condition = SDL_TRUE;
    ...
    SDL_CondBroadcast(cond);
    SDL_UnlockMutex(lock);
.
.
SDL_DestroyCond(cond);
SDL_DestroyMutex(lock);
Line 30: Line 61:
 .[[SDL_CondSignal]] *
 .[[SDL_CondWait]] *
 .[[SDL_CreateCond]]
.[[SDL_CondSignal]]
 .[[SDL_CondWait]]
.[[SDL_CondWaitTimeout]]
 .[[SDL_DestroyCond]]

SDL_CondBroadcast

Use this function to restart all threads that are waiting on the condition variable.

Syntax

int SDL_CondBroadcast(SDL_cond* cond)

Function Parameters

cond

the condition variable to signal

Return Value

Returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

Code Examples

SDL_bool condition = SDL_FALSE;
SDL_mutex *lock;
SDL_cond *cond;

lock = SDL_CreateMutex();
cond = SDL_CreateCond();
.
.
Thread A:
    SDL_LockMutex(lock);
    while ( !condition ) {
        SDL_CondWait(cond, lock);
    }
    SDL_UnlockMutex(lock);

Thread B:
    SDL_LockMutex(lock);
    while ( !condition ) {
        SDL_CondWait(cond, lock);
    }
    SDL_UnlockMutex(lock);

Thread C:
    SDL_LockMutex(lock);
    ...
    condition = SDL_TRUE;
    ...
    SDL_CondBroadcast(cond);
    SDL_UnlockMutex(lock);
.
.
SDL_DestroyCond(cond);
SDL_DestroyMutex(lock);

Remarks

You can add useful comments here


CategoryAPI, CategoryMutex

None: SDL_CondBroadcast (last edited 2015-04-26 19:03:53 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit