Ok, here's a summary in case someone else is in the same need:
1) Want to know what "mutex/condition" are, how do they work and when to use them? Here's a good resource: http://stackoverflow.com/a/4742236
2) If you come to the question "Why a condition needs a mutex?": http://stackoverflow.com/questions/2763714/why-do-pthreads-condition-variable-functions-require-a-mutex
3) Need a working example in D? (by Steven Schveighoffer): http://forum.dlang.org/thread/j7sdte$25qm$1...@digitalmars.com