I am new to threads, I am trying to simulate the critical section race condition problem in this code.
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
using namespace std::chrono;
int x = 20;
void increment()
{
    ++x;
}
void decrement()
{
    --x;
}
int main()
{
    thread t1(increment);
    thread t2(decrement);
    cout << x;
    return 0;
}
But, this code terminates with SIGABRT. 
terminate called without an active exception 
21 
Why I am getting SIGABRT in this code?
 
    