A successful day
Some days just shine. Like tiny, vivid rivers reflecting the sun in summer. Today was no exception and I sorta archieve 4 goals I started working on some time ago. One of these goals was the compression of ITK's thread functionality. It's nothing but completely redone and very tiny compared to what monster I engineered before. Consists of a more granular version of itk_qmutex (now called qutex) and a thread model supporting message passing and events. Didn't test the message passaging so far, but atleast my event setup works fine now. I was able able to completely the polling thread manager by realizing that my qmutex/qutex mechanic was already everything I need: queried access to a ressource and a single mutex guarding the qutex itself. Utilizing this mutex to also protect a ressource necessary for deciding whether to enlist oneself in the query or not is exactly what I'm doing right now. No stupid complex managers, no monolithic event management. Just what's already there. This makes it also possible to let the main thread work with events and messages the same way every other thread does. I don't need to carefully follow special deinitialization orders or delayed thread termination. Just simply work with the mutexes as I always desired it. Fascinating. And Satisfying. It's the best thing ever to feel that all the effort was worth it, that you learned more than by not skipping the hard work. That's the essence of deep reasearch, that's what makes the way more valuable than the result. Of course is the result more than important in this case cause it's my bachelor thesis, but by following the way I did I learned more about thread synchronization than most programmers just copying existing algorithms. I'm known for my love for complicated problems the way I tackle them. And each one brings me more knowledge and insight into the vast world of programming. Hooray! I'm gonna have the most awesome engine EVA.