- Dec 17, 2020
-
-
Florian Schmaus authored
Co-authored-by:
Florian Fischer <florian.fl.fischer@fau.de>
-
- Dec 14, 2020
-
-
Florian Schmaus authored
Various small changes See merge request !55
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
Fix memory leak: Ensure that the current fiber is recycled in discardAndResume() See merge request !51
-
Florian Schmaus authored
Improve code readability of UnboundedBlockingMpscQueue See merge request !52
-
Florian Schmaus authored
The current Fiber is now always stored in the context, not just on debug builds. This also means that we can remove the currentFiber thread local variable, as using only a thread local storage would yield wrong results in case a blocked context is resumed on another worker thread.
-
Florian Schmaus authored
[build] Switch to C++2a See merge request !47
-
Florian Schmaus authored
Improve debug output, create Worker class See merge request !42
-
- Dec 13, 2020
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
There is no need to call load() on std::atomic if the default memory order is used.
-
- Dec 10, 2020
-
-
Florian Schmaus authored
[doc] make doxygen search for input recursively See merge request !50
-
Florian Schmaus authored
-
Florian Fischer authored
If RECURSIVE is set to NO doxygen will only process files in emper/ when set to YES it will see all files reachable from emper/.
-
Florian Schmaus authored
We are unable to switch to C++20 until https://github.com/mesonbuild/meson/issues/8084 is fixed.
-
Florian Schmaus authored
Add emper::getFullVersion() See merge request !49
-
- Dec 09, 2020
-
-
Florian Schmaus authored
This also solves a dependency declaration issue in WorkerSleepExample: Prior to this change, a clean build could potentially result in ninja -C build ninja: Entering directory `build' [13/57] Compiling C++ object apps/worker_sleep_example.p/WorkerSleepExample.cpp.o FAILED: apps/worker_sleep_example.p/WorkerSleepExample.cpp.o ccache c++ -Iapps/worker_sleep_example.p -Iapps -I../apps -Iemper -I../emper -Iemper/include -I../emper/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Wpedantic -Werror -std=c++17 -O2 -g -Wno-non-virtual-dtor -MD -MQ apps/worker_sleep_example.p/WorkerSleepExample.cpp.o -MF apps/worker_sleep_example.p/WorkerSleepExample.cpp.o.d -o apps/worker_sleep_example.p/WorkerSleepExample.cpp.o -c ../apps/WorkerSleepExample.cpp ../apps/WorkerSleepExample.cpp:12:10: fatal error: emper-version.h: No such file or directory 12 | #include "emper-version.h" // for EMPER_FULL_VERSION | ^~~~~~~~~~~~~~~~~ compilation terminated. [17/57] Generating emper-version.h with a custom command ninja: build stopped: subcommand failed. make: *** [Makefile:23: build] Error 1 because worker_sleep_example_exec should have also depend on emper_version_h. However this is obviously error prone, as users easily forget to add this dependency. Instead we add emper::getFullVersion() which is part of the EMPER shared object (not just of a single header).
-
Florian Schmaus authored
Use lib::adt::LockedUnboundedQueue in Scheduler See merge request !45
-
Florian Schmaus authored
Re-use Runtime::getWorkerId() when possible See merge request !44
-
Florian Schmaus authored
Allow an actor to be startet from anywhere See merge request !43
-
Florian Schmaus authored
This class was previously unused, but can be used in Scheduler after minor modifcations.
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Schmaus authored
Runtime::getWorkerId() may be an expensive operation, hence re-use the result of the method when possible.
-
Florian Schmaus authored
-
Florian Schmaus authored
Schedule from anywhere See merge request !41
-
Florian Schmaus authored
-
Florian Schmaus authored
In debug builds, the schedule() method is now guarded by an assert(), as due to this change, the schedule() method will no longer work from everywhere. This also improves the worker sleep method.
-
- Dec 07, 2020
-
-
Florian Schmaus authored
This directory is used, for example, by clangd.
-
Florian Schmaus authored
-
- Dec 05, 2020
-
-
Florian Schmaus authored
[gitlab-ci] Bump CI container to flowdalic/debian-testing-dev:1.4 See merge request !40
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Dec 03, 2020
-
-
Florian Schmaus authored
prevent data races when initializing the workers PRNG seeds See merge request !38
-
Florian Fischer authored
Each worker currently calls uniformIntDistribution(randomEngine) which modifies the randomEngine internally and thus produces data races when the threads run in parallel. This change calls uniformIntDistribution(randomEngine) on the main thread for each worker and passes the resulting seeds to the workerLoop. The data race was found by gcc's tsan.
-
- Dec 02, 2020
-
-
Florian Schmaus authored
Add sanitizer CI targets See merge request !35
-
Florian Schmaus authored
Debugging changes See merge request !37
-
Florian Fischer authored
-
Florian Fischer authored
-