Boost logo

Boost :

Subject: Re: [boost] [thread] error: ‘internal_mutex’ was not declared in this scope
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-02-03 12:35:20


Le 03/02/12 15:13, Thijs (M.A.) van den Berg a écrit :
> I tried to report this issue to the user list, but I think it's still under moderation, ..and it's kind of strange error I'm getting solely by including a header like this:
>
>
> #<boost/thread/thread.hpp>
> int main()
> {
> return 0;
> }
>
> This occurs with boost version 1.48 and gcc 4.4.5 on linux
>
>
> The error occurs at lines 53, 69, 88 and 94 in boost/thread/pthread/condition_variable.hpp, and the error is that 'internal_mutex' is not declared. Here below is an inline function containing the line 53.
>
> inline void condition_variable::wait(unique_lock<mutex>& m)
> {
> int res=0;
> {
> thread_cv_detail::lock_on_exit<unique_lock<mutex> > guard;
> detail::interruption_checker check_for_interruption(&internal_mutex,&cond); // HERE IS THE ERROR
> guard.activate(m);
> res=pthread_cond_wait(&cond,&internal_mutex);
> }
> this_thread::interruption_point();
> if(res)
> {
> boost::throw_exception(condition_error());
> }
> }
>
> .I can agree with the compiler, I don't see any declaration of internal_mutex, ..is this a spelling error, and if so, why am I the only one seeing this?? I can't find anyone else reporting something like this via google. Very strange… Any idea?
>
> my gcc -v gives:
> Target: x86_64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
> Thread model: posix
> gcc version 4.4.5 (Debian 4.4.5-8)
>
>

Hi, I don't know under which conditions you are getting this error :(

The declaration is on the file

boost/thread/pthread/condition_variable_fwd.hpp

     class condition_variable
     {
     private:
         pthread_mutex_t internal_mutex; // *************

Could you add #error before this declaration?

Best,
Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk