Guess I invented the synchronization I was looking for. I'd call it a switch, but switch is already a C keyword and will thus not enable to name my parameter variables like this. So I instead named it a toggle (I thinks that's a good alternative). This toggle can either be on or off and a thread can wait for it to become on (not delaying if it's already on) or the opposite - waiting for off. A thread can also wait for a state change - the code is so small and almost always the same but the concept greate for solving my problems. Actually, I could do this by hand but since I need quite a few them and want to keep the code as simple and understandable as possible, it is important to modularize everything. Additionally (and probably the most important thing) is that it really eases the knots in my mind. I can't say I'm somehow who can handle a lot of difficult rules at once, but I know how to simplify and generalize things in a way that they are very easy to understand use. And this is what I think makes a good programmer - the ability to also keep your creations bearable for others. So far I've met really a lot of people thinking very differently who can keep so many fucking rules in their mind that it's to say for what they use their brain for - remembering! Well, that's not me, I tend to forget everything that's not always necessary. So I can also not keep everything in mind I created or every rule (therefore, laws are a real nightmare to me...). For a programmer having everything in mind, you can surely create a shitload of stuff really fast, but nobody else except someone of your caliber can understand it this way. People knowing will think that I already know a lot about programming, sure, but only managed to know very specific knowledge to programming and program execution itself, not directly about all the solutions I wrote code for. Right now, I can't even remember how my tasker works in detail (because it's quite specific) but I'll know it when reading. You always know the stuff you once coded? Well, consider yourself a remembering mind then! I'm not. I can only layer series of simple actions and reactions to generalized systems. A bit like my former math lecturer. He tend to have a couple of mathematical definitions and would do everything by applying them - just like an algorithm or program code. But I always had problems with mathematical notation because I learned programming before understanding maths fully.