|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
SDL_SemWaitTimeout
| SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby zaczekać przez wyznaczony czas na przyjęcie dodatniej wartości przez semafor, po czym zmniejszyć go o 1.
int SDL_SemWaitTimeout(SDL_sem* sem,
Uint32 ms)
|
| sem | semafor, dla którego wykonywane jest oczekiwanie. |
| ms | maksymalny czas oczekiwania w milisekundach. |
SDL_atomic_t done;
SDL_sem *sem;
SDL_AtomicSet(&done, 0);
sem = SDL_CreateSemaphore(0);
.
.
Thread A:
while (!SDL_AtomicGet(&done))
{
add_data_to_queue();
SDL_SemPost(sem);
}
Thread B:
const Uint32 timeout = 1000; /* wybudzaj się co sekundę */
while (!SDL_AtomicGet(&done))
{
if (SDL_SemWaitTimeout(sem, timeout) == 0 && data_available())
{
get_data_from_queue();
}
... /* wykonaj dalsze przetwarzanie */
}
.
.
SDL_AtomicSet(&done, 1);
SDL_SemPost(sem);
wait_for_threads();
SDL_DestroySemaphore(sem);
|
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.