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 |
©2024 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 ©2024 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.