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