mutex failing (stupid C++!)
Ian Lance Taylor
iant@google.com
Wed Oct 31 17:45:00 GMT 2007
skaller <skaller@users.sourceforge.net> writes:
> Arggg .. C++ is such a mess.. look at this and spot the bug:
>
> {
> flx_mutex_locker_t (*ehd->spawner_lock);
> fprintf(stderr,"Thread %p acquired mutex\n", pthread_self());
> *ehd->spawner_flag=true;
> ehd->spawner_cond->broadcast();
> fprintf(stderr,"Thread %p releasing mutex\n", pthread_self());
> }
>
> This baffled me for 3 days now. The code is legal, it just
> doesn't do what I expected. The fix is ONE CHARACTER.
I assume the problem is that you didn't name your lock.
I think the question is: could g++ issue a warning for this code which
would have helped you identify the problem?
Ian
More information about the Gcc-help
mailing list