Replace Boost threads with C++11. Both boost::ref and boost::thread::thread are not part of the standard C++ library. std::tr1::bind has also become std::bind in C++11. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> --- api/dirty-log-perf.cc | 8 ++------ api/dirty-log.cc | 19 ++++++++----------- x86/Makefile.common | 4 ++-- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/api/dirty-log-perf.cc b/api/dirty-log-perf.cc index 16990a6..89043b0 100644 --- a/api/dirty-log-perf.cc +++ b/api/dirty-log-perf.cc @@ -2,7 +2,6 @@ #include "exception.hh" #include "memmap.hh" #include "identity.hh" -#include <boost/thread/thread.hpp> #include <stdlib.h> #include <stdio.h> #include <sys/time.h> @@ -34,15 +33,12 @@ void write_mem(void* slot_head, int64_t nr_to_write, int64_t nr_pages) } } -using boost::ref; -using std::tr1::bind; - // Let the guest update nr_to_write pages selected from nr_pages pages. void do_guest_write(kvm::vcpu& vcpu, void* slot_head, int64_t nr_to_write, int64_t nr_pages) { - identity::vcpu guest_write_thread(vcpu, bind(write_mem, ref(slot_head), - nr_to_write, nr_pages)); + identity::vcpu guest_write_thread(vcpu, std::bind(write_mem, slot_head, + nr_to_write, nr_pages)); vcpu.run(); } diff --git a/api/dirty-log.cc b/api/dirty-log.cc index 4e4bfc9..47fbac2 100644 --- a/api/dirty-log.cc +++ b/api/dirty-log.cc @@ -2,7 +2,7 @@ #include "exception.hh" #include "memmap.hh" #include "identity.hh" -#include <boost/thread/thread.hpp> +#include <thread> #include <stdlib.h> #include <stdio.h> @@ -46,9 +46,6 @@ void check_dirty_log(mem_slot& slot, } -using boost::ref; -using std::tr1::bind; - int test_main(int ac, char **av) { kvm::system sys; @@ -56,7 +53,7 @@ int test_main(int ac, char **av) mem_map memmap(vm); void* logged_slot_virt; posix_memalign(&logged_slot_virt, 4096, 4096); - int* shared_var = static_cast<int*>(logged_slot_virt); + volatile int* shared_var = static_cast<volatile int*>(logged_slot_virt); identity::hole hole(logged_slot_virt, 4096); identity::vm ident_vm(vm, memmap, hole); kvm::vcpu vcpu(vm, 0); @@ -65,13 +62,13 @@ int test_main(int ac, char **av) mem_slot logged_slot(memmap, reinterpret_cast<uintptr_t>(logged_slot_virt), 4096, logged_slot_virt); - boost::thread host_poll_thread(check_dirty_log, ref(logged_slot), - ref(running), - ref(shared_var), ref(nr_fail)); + std::thread host_poll_thread(check_dirty_log, std::ref(logged_slot), + std::ref(running), + shared_var, std::ref(nr_fail)); identity::vcpu guest_write_thread(vcpu, - bind(write_mem, - ref(running), - ref(shared_var))); + std::bind(write_mem, + std::ref(running), + shared_var)); vcpu.run(); host_poll_thread.join(); printf("Dirty bitmap failures: %d\n", nr_fail); diff --git a/x86/Makefile.common b/x86/Makefile.common index fbab82c..ec50926 100644 --- a/x86/Makefile.common +++ b/x86/Makefile.common @@ -73,9 +73,9 @@ arch_clean: $(RM) $(TEST_DIR)/*.o $(TEST_DIR)/*.flat $(TEST_DIR)/*.elf \ $(TEST_DIR)/.*.d lib/x86/.*.d -api/%.o: CFLAGS += -m32 +api/%.o: CFLAGS += -m32 -std=gnu++11 -api/%: LDLIBS += -lstdc++ -lboost_thread -lpthread -lrt +api/%: LDLIBS += -lstdc++ -lpthread -lrt api/%: LDFLAGS += -m32 api/libapi.a: api/kvmxx.o api/identity.o api/exception.o api/memmap.o -- 1.8.3.1