18
« dnia: Wrzesień 16, 2017, 01:58:50 »
Czołem!
Podrzucam swój kod. Nie jest odkrywczy, ale działa.
Jest klasa dla pojedynczego wątku.
Pula wątków jest oparta na wektorze wątków.
Działanie, to producent==>konsument.
Zadania się wrzuca jako wskaźniki do obiektów.
Obiekty są niszczone, bądź nie, zależnie od ich implementacji.
Funkcjonalność się nie skompiluje, trzeba go lekko poprawić.
Rzecz w tym, że to fragment mojego silnika.
Problemem mogą być includy oraz MONAD_CATCH. Monad catch to obsługa wyjątków w formie makra.
Tu możesz dodać własną obsługę wyjątków.
Jak spojrzysz na enkapsulację std::thread, to zauważysz funkcję stub.
On nic wielkiego nie przetwarza, tylko wychwytuje wyjątki sprzętowe. Takie cuda chyba są tylko w VC++.
if(!Monad::Exception::InAny()) sprawdza, czy wystąpił gdzieś wyjątek, jeśli tak, to przestaje obsługiwać zadania, próbuję jedynie wykonać destrukcję.
Jeśli co, to proszę pytaj.
Pozdr.