#include <thread>
#include <mutex>
#include <iostream>
#include <system_error>
#include <cstdlib>

void f()
{
    std::mutex m;
    m.lock();
    m.unlock();
}

int main()
{
  for(size_t i=0; i < 2; ++i)
  {
    try
    {
        f();
    }
    catch(std::system_error& e)
    {
        std::cerr << "std::mutex::lock caused std::system_error at i = " << i
                  << " with code " << e.code()
                  << " meaning " << e.what() << '\n';
        return 1;
    }
  }

  return 0;
}
