mirror of
https://github.com/boostorg/fiber.git
synced 2026-02-18 01:52:24 +00:00
sched_algorithm knows nothing about properties, so that class isn't really the best place for the property_change() virtual method. Introduce intermediate sched_algorithm_with_properties_base class, which introduces property_change_() virtual method accepting fiber_properties*. Then the properties-specific sched_algorithm_with_properties<PROPS> implementation calls property_change() (no trailing underscore) with fiber_properties* cast to PROPS&. Thus the user- coded sched_algorithm implementation can override property_change() and accept PROPS& rather than the generic fiber_properties* pointer. But fiber_properties::notify() -- which doesn't know its own PROPS subclass -- can nonetheless call sched_algorithm_with_properties_base::property_change_().