Opened 9 years ago

Closed 9 years ago

#8838 closed Bugs (fixed)

clang/libc++ doesn't define boost::mutex::scoped_lock

Reported by: timblechmann Owned by: viboes
Milestone: To Be Determined Component: lockfree
Version: Boost 1.54.0 Severity: Problem
Keywords: Cc:

Description

the boost.lockfree testsuite currently does not compile with clang/libc++/linux:

In file included from ../libs/lockfree/test/spsc_queue_stress_test.cpp:20:
../libs/lockfree/test/test_helpers.hpp:41:23: error: no member named 'scoped_lock' in 'boost::mutex'
        boost::mutex::scoped_lock lock (ref_mutex[index]);

compare: http://www.boost.org/development/tests/trunk/developer/lockfree.html

Change History (4)

comment:1 by viboes, 9 years ago

Owner: changed from Anthony Williams to viboes
Status: newassigned

I suspect that the tester is defining BOOST_THREAD_VERSION to 4 so that this deprecated typedef is not included. I suggest you to replace them by lock_guard or unique_lock.

comment:2 by viboes, 9 years ago

Component: threadlockfree

comment:3 by timblechmann, 9 years ago

i see ... will adapt my code ... but removing this typedef has the potential of breaking a lot of legacy code, so i hope it is just about this one tester. also, would it be possible to mark the typedef as deprecated to get a compiler warning?

comment:4 by timblechmann, 9 years ago

Resolution: fixed
Status: assignedclosed

(In [85196]) lockfree: use lock_guard instead of the deprecated boost::mutex::scoped_lock

fixes #8838

Note: See TracTickets for help on using tickets.