Skip to content

V 0.1.0#39

Merged
David-Haim merged 23 commits into
masterfrom
develop
Feb 24, 2021
Merged

V 0.1.0#39
David-Haim merged 23 commits into
masterfrom
develop

Conversation

@David-Haim
Copy link
Copy Markdown
Owner

  • Addition of shared_result.

  • Thread-sanitizer tests were re-written.

  • result_coro_promise is now merged with result_state (every eager task allocates just one memory chunk instead of two, no refcount).

  • various bug fixes and improvements.

Tests were run locally, as Github actions still doesn't support clang-11.

friendlyanon and others added 23 commits October 2, 2020 11:48
* Add CLion ignores

* Use Modern CMake

* Restructure the project files

* Move test files around

* Remove Unnecessary CMakeLists.txt

* Restructure the examples

* Move thread sanitizer tests to the test directory

* Put coroutine options in a separate CMake module

* Rewrite the example lists files

* Add the option to build the library with thread sanitizer (This only works when the compiler is Clang based.)

* Rewrite the sandbox lists file

* Add coroutine options to tests as well

* Make the add_test function forward properties

* Stop script execution early to reduce indentation

* Include coroutine options using a relative path

Remembering to always pass the CMAKE_MODULE_PATH for every cmake
invocation might become troublesome otherwise.

Co-authored-by: friendlyanon <friendlyanon@users.noreply.github.com>
* Run clang-format
* Missing <algorithm> header
* Rework the test folder
* Fix include paths in library and example code
* Add a lists file that builds all the examples
* Rework coroutineOptions.cmake
* Fix ignores for CLion
* Add CI support

There are 4 builds in CI, on 2 providers:

Github Actions:
* Ubuntu Bionic, Clang 10, with TSAN
* Ubuntu Bionic, Clang 10, without TSAN
* Windows, VS2019

Travis CI:
* macOS, Xcode 10.3

* Allow failures in the Travis CI
* Add missing newlines at EOF

Co-authored-by: friendlyanon <friendlyanon@users.noreply.github.com>
* fix include path in the sandbox and tests
* Simplify CI process (Remove Travis.ci, move macOS steps to github actions)

Co-authored-by: friendlyanon <friendlyanon@users.noreply.github.com>
* Modify the imported target directly
* Use a single variable for TSAN

Co-authored-by: friendlyanon <friendlyanon@users.noreply.github.com>
* clang-format fine tuning
* better readme, fix include path in examples
* Make TSAN compile correctly by adding missing cmake properties
* remove buggish assert from thread-pool test
* compile everything in release mode with debug info
* result_core refactor
* renamed to result_state
* broken to consumer_context and producer_context
* await_via behaviuor fine tune - resolve_via throws executor_exception if the coroutine is supended and enqueueing its resumption throws
* await/await_via/resolve/resolve_via tests were re-written
* task object replaces raw usage of std::coroutine_handle
* calls to executor::post try to inline the memory by using the task inline buffer (the callable doesn't run as a coroutine anymore)
* await(_via)/relove(_via) throw concurrencpp::broken_task if the executor destroyed the associated task, for example, by throwing
* await small refactor
* complete executors-refactor
* timer::cancel also cancels scheduled-not-executed tasks, ongoing tasks are uneffected
* test utils refactor
* complete tests-re-write
* support shared_result objects
* result_state and result_coro_promise were merged together (finally!)
* thread sanitizer tests were rewritten
* small improvements and bug fixes
@David-Haim David-Haim merged commit f037e8c into master Feb 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants