mirror of
https://github.com/mmueller41/mxtasking.git
synced 2026-01-21 12:42:57 +01:00
Added communication signal to Tukija.
This commit is contained in:
@@ -15,11 +15,11 @@
|
|||||||
|
|
||||||
using namespace mx::tasking;
|
using namespace mx::tasking;
|
||||||
|
|
||||||
Worker::Worker(const std::uint16_t id, const std::uint16_t target_core_id, const std::uint16_t target_numa_node_id,
|
Worker::Worker(const std::uint16_t id, const std::uint16_t target_core_id, const std::uint16_t target_numa_node_id, std::uint64_t* volatile tukija_sig,
|
||||||
const util::maybe_atomic<bool> &is_running, const std::uint16_t prefetch_distance,
|
const util::maybe_atomic<bool> &is_running, const std::uint16_t prefetch_distance,
|
||||||
memory::reclamation::LocalEpoch &local_epoch,
|
memory::reclamation::LocalEpoch &local_epoch,
|
||||||
const std::atomic<memory::reclamation::epoch_t> &global_epoch, profiling::Statistic &statistic) noexcept
|
const std::atomic<memory::reclamation::epoch_t> &global_epoch, profiling::Statistic &statistic) noexcept
|
||||||
: _target_core_id(target_core_id), _prefetch_distance(prefetch_distance),
|
: _target_core_id(target_core_id), _tukija_signal(tukija_sig), _prefetch_distance(prefetch_distance),
|
||||||
_channel(id, target_numa_node_id, prefetch_distance), _local_epoch(local_epoch), _global_epoch(global_epoch),
|
_channel(id, target_numa_node_id, prefetch_distance), _local_epoch(local_epoch), _global_epoch(global_epoch),
|
||||||
_statistic(statistic), _is_running(is_running)
|
_statistic(statistic), _is_running(is_running)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace mx::tasking {
|
|||||||
class alignas(64) Worker
|
class alignas(64) Worker
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Worker(std::uint16_t id, std::uint16_t target_core_id, std::uint16_t target_numa_node_id,
|
Worker(std::uint16_t id, std::uint16_t target_core_id, std::uint16_t target_numa_node_id, std::uint64_t* volatile tukija_sig,
|
||||||
const util::maybe_atomic<bool> &is_running, std::uint16_t prefetch_distance,
|
const util::maybe_atomic<bool> &is_running, std::uint16_t prefetch_distance,
|
||||||
memory::reclamation::LocalEpoch &local_epoch, const std::atomic<memory::reclamation::epoch_t> &global_epoch,
|
memory::reclamation::LocalEpoch &local_epoch, const std::atomic<memory::reclamation::epoch_t> &global_epoch,
|
||||||
profiling::Statistic &statistic) noexcept;
|
profiling::Statistic &statistic) noexcept;
|
||||||
@@ -68,6 +68,9 @@ private:
|
|||||||
// Flag for "running" state of MxTasking.
|
// Flag for "running" state of MxTasking.
|
||||||
const util::maybe_atomic<bool> &_is_running;
|
const util::maybe_atomic<bool> &_is_running;
|
||||||
|
|
||||||
|
// Communication channel to Tukija
|
||||||
|
std::uint64_t *volatile _tukija_signal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Analyzes the given task and chooses the execution method regarding synchronization.
|
* Analyzes the given task and chooses the execution method regarding synchronization.
|
||||||
* @param task Task to be executed.
|
* @param task Task to be executed.
|
||||||
|
|||||||
Reference in New Issue
Block a user