Class EventBasedScheduler
Defined in File event_based_scheduler.hpp
Base Type
public holoscan::gxf::GXFScheduler
(Class GXFScheduler)
-
class EventBasedScheduler : public holoscan::gxf::GXFScheduler
Event-based scheduler.
This is a multi-thread scheduler that uses an event-based design. Unlike the
MultiThreadScheduler
, it does not utilize a dedicated polling thread that is constantly polling operators to check which are ready to execute. Instead, certain events in the underlying framework will indicate that the scheduling status of an operator should be checked.==Parameters==
worker_thread_number (int64_t): The number of (CPU) worker threads to use for executing operators. Defaults to 1.
stop_on_deadlock (bool): If True, the application will terminate if a deadlock state is reached. Defaults to true.
stop_on_deadlock_timeout (int64_t): The amount of time (in ms) before an application is considered to be in deadlock. Defaults to 0.
max_duration_ms_ (int64_t, optional): Terminate the application after the specified duration even if deadlock does not occur. If unspecified, the application can run indefinitely.
Public Functions
-
template<typename ArgT, typename ...ArgsT, typename = std::enable_if_t<!std::is_base_of_v<::holoscan::Scheduler, std::decay_t<ArgT>> && (std::is_same_v<::holoscan::Arg, std::decay_t<ArgT>> || std::is_same_v<::holoscan::ArgList, std::decay_t<ArgT>>)>>
inline explicit EventBasedScheduler(ArgT &&arg, ArgsT&&... args)
-
EventBasedScheduler() = default
-
inline virtual const char *gxf_typename() const override
Get the type name of the GXF scheduler.
The returned string is the type name of the GXF scheduler and is used to create the GXF scheduler.
Example: “nvidia::holoscan::GreedyScheduler”
- Returns
The type name of the GXF scheduler.
-
inline virtual std::shared_ptr<Clock> clock() override
Get the Clock used by the scheduler.
- Returns
The Clock used by the scheduler.
-
virtual void setup(ComponentSpec &spec) override
Define the scheduler specification.
- Parameters
spec – The reference to the component specification.
-
virtual void initialize() override
Initialize the scheduler.
This function is called after the scheduler is created by holoscan::Fragment::make_scheduler().
-
inline int64_t worker_thread_number()
-
inline bool stop_on_deadlock()
-
inline int64_t stop_on_deadlock_timeout()
-
inline int64_t max_duration_ms()
-
nvidia::gxf::EventBasedScheduler *get() const