Figured out threads for the next round.
This commit is contained in:
parent
fdb3f24377
commit
8d1570f44a
2 changed files with 38 additions and 0 deletions
|
@ -36,6 +36,7 @@ executable('escape_turings_tarpit',
|
|||
'builder.cpp',
|
||||
'sfmlgui.cpp',
|
||||
'escape_turings_tarpit.cpp'],
|
||||
win_subsystem: 'windows',
|
||||
dependencies: dependencies)
|
||||
|
||||
executable('regtest', 'regtest.cpp',
|
||||
|
@ -53,6 +54,9 @@ executable('audiotest', 'audiotest.cpp',
|
|||
executable('jsontest', 'jsontest.cpp',
|
||||
dependencies: dependencies)
|
||||
|
||||
executable('threadtest', 'threadtest.cpp',
|
||||
dependencies: dependencies)
|
||||
|
||||
runtests = executable('runtests', [
|
||||
'game_engine.cpp',
|
||||
'tests/game_engine.cpp',
|
||||
|
|
34
threadtest.cpp
Normal file
34
threadtest.cpp
Normal file
|
@ -0,0 +1,34 @@
|
|||
#include <thread>
|
||||
#include <fmt/core.h>
|
||||
#include <chrono>
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
#include <utility>
|
||||
#include <iostream>
|
||||
#include <mutex>
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
std::atomic_int counter = 0;
|
||||
std::mutex counter_mutex;
|
||||
|
||||
|
||||
void locked_counter() {
|
||||
for (int i = 0; i < 5; ++i)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(counter_mutex);
|
||||
std::this_thread::sleep_for(100ms);
|
||||
std::cout << "Thread 1 executing\n";
|
||||
++counter;
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::jthread t2(locked_counter); // pass by value
|
||||
|
||||
for(int i = 0; i < 5; ++i) {
|
||||
std::lock_guard<std::mutex> lock(counter_mutex);
|
||||
std::cout << "counter is " << counter << std::endl;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue