Problem with mutex.lock()
Banta Plan
bantaplan at outlook.de
Mon Feb 11 11:09:33 UTC 2019
I compiled this program and it crashes if executed.
Compiled with: FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) (based on LLVM 6.0.1)
## CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
project(mainP)
set(CMAKE_CXX_STANDARD 17)
add_executable(mainP main.cpp)
find_package(Threads)
target_link_libraries(mainP ${CMAKE_THREAD_LIBS_INIT})
## main.cpp
#include <iostream>
#include <thread>
#include <mutex>
#include <chrono>
#include <functional>
int main() {
using namespace std::chrono_literals;
std::mutex m;
m.lock();
std::thread([&] {
std::cout << "Before sleepFor" << std::endl;
std::this_thread::sleep_for(2s);
std::cout << "Before unlock" << std::endl;
m.unlock();
std::cout << "After unlock" << std::endl;
}).detach();
std::cout << "Before lock2" << std::endl;
m.lock();
std::cout << "After lock2" << std::endl;
return 0;
}
##
This program compiles and runs under MacOS (Clang Version: Apple LLVM version 10.0.0 (clang-1000.11.45.5)) and
manjaro arm64 with gcc (GCC) 8.2.1 20180831
More information about the freebsd-toolchain
mailing list