Skip to content

ddvamp/exe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

exe

Contents

Disclaimer


В настоящем репозитории код не тестировался, определённо содержит ошибки и не предназначен для использования, но пишется для улучшения и отработки автором знания языка C++, а также служит демонстрацией применения этого знания

Репозиторий находится в активной разработке (WIP), поэтому структура и содержимое могут со временем изменяться. Наиболее интересный с точки зрения применения возможностей языка C++ код можно найти здесь


About

Учебный фреймворк для написания многопоточных масштабируемых concurrency приложений, созданный на основе выполнения заданий из курса "Теория и практика многопоточной синхронизации" за авторством Романа Липовского, MIPT

Написан с использованием C++26

Structure

  • runtime - среда исполнения
  • fiber
    • API & implementation
    • synchronization primitives
    • future support
  • (go) channels for fiber - имплементация каналов из языка go
  • (functional) future - фьючи в функциональном стиле
    • constructors - создают фьючи
    • combinators - преобразуют одни фьючи в другие
      • seq - последовательные комбинаторы
      • par - параллельные комбинаторы
    • terminators - поглощают фьючи
  • (Wip) lazy future - ленивые фьючи (осуществляют выделение памяти и синхронизацию потоков лишь при необходимости)

Requirements

  1. C++26
  2. clang++-21/libstdc++
  3. x86-64/sysv/elf
  4. Linux

Configuration

Для отключения отладочных проверок внутри фреймворка необходимо передать флаг

-DUTIL_DISABLE_DEBUG

Third-party libraries

  • concurrency - библиотека средств синхронизации потоков
  • context - контекст исполнения для stackful корутин/файберов
  • util - std-like библиотека общих утилит

License

В настоящем репозитории код лицензирован под GNU General Public License v3.0. Дополнительная информация доступна по адресу https://www.gnu.org/licenses/

Links

About

Учебный concurrency framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages