Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Feb 2019 11:09:29 +0000
From:      Banta Plan <bantaplan@outlook.de>
To:        "freebsd-toolchain@freebsd.org" <freebsd-toolchain@freebsd.org>
Subject:   Problem with mutex.lock()
Message-ID:  <VI1PR02MB4671CBB16996C63C4ABB317BD7640@VI1PR02MB4671.eurprd02.prod.outlook.com>

next in thread | raw e-mail | index | archive | help
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 versi=
on 10.0.0 (clang-1000.11.45.5)) and
manjaro arm64 with gcc (GCC) 8.2.1 20180831






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?VI1PR02MB4671CBB16996C63C4ABB317BD7640>