Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Yukigaru committed May 19, 2024
1 parent 3759aa2 commit 2368b37
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 43 deletions.
43 changes: 0 additions & 43 deletions INSTRUCTION.md

This file was deleted.

45 changes: 45 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# C++ Russia 2024, workshop "C++ concurrency: condition variables"

### Что такое
Это репозиторий к практическому воркшопу, во время которого вы изучите безопасную синхронизацию между потоками на основе condition variable.
В планах:
- узнаете, что такое `std::condition_variable` и какие задачи он решает;
- изучите типовые ошибки при использовании и к чему они приводят;
- вживую поймаете spurious wakeup;
- напишете несколько concurrency-примитивов на основе condition variable.

Воркшоп разделен на 7 задач по 5-30 минут. Перед началом каждой задачи будет теоретический материал, а после - разбор типового решения.

Для быстрых и опытных учеников в конце .cpp файла будет «звездочка»: опциональное усложнение, которое можно дополнительно реализовать.


### Требования

ОС: Любой Linux дистрибутив, Windows с MSVC или WSL.
Компилятор: GCC 8.x, Clang 5.x, с поддержкой C++17.
На остальных платформах работа возможна, но не проверена.


### До начала

1) Установите необходимый toolchain, если ещё не установлен: `make`, `git`, `cmake`, `g++` (либо `clang`, либо `visual studio` на Windows).

2) Убедитесь, что сборка проходит успешно.
```
> cmake -Bbuild -DCMAKE_BUILD_TYPE=Debug .
> cmake --build build
```

3) Для сборки во время workshop'а вы можете использовать cmake в терминале, либо использовать свой IDE (настраивать нужно будет самостоятельно).


### Troubleshooting
1) В случае ошибки при запуске бинарей:
```
FATAL: ThreadSanitizer: unexpected memory mapping 0x74dea7872000-0x74dea7d00000
```
Нужно выполнить:
```
sudo sysctl vm.mmap_rnd_bits=25
```
(работает до момента перезапуска)

0 comments on commit 2368b37

Please sign in to comment.