What can I help you with?
NVIDIA Holoscan SDK v3.3.0

Class EventBasedScheduler

Base Type

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

Previous Class Endpoint
Next Class ExecutionContext
© Copyright 2022-2025, NVIDIA. Last updated on May 29, 2025.