First, please post a minimal, but compilable example that reproduces your problem. Post the code inside code tags, such that we can read it.
Second, why are you trying to reinvent the wheel? Have a look at the Boost.Thread library. Most (if not all) of this will become part of C++0x using the same syntax. If you want to build a framework that will help you with multi-threading, I would base it on this.
Cheers, D Drmmr
Please put [code][/code] tags around your code to preserve indentation and make it more readable.
As long as man ascribes to himself what is merely a posibility, he will not work for the attainment of it. - P. D. Ouspensky