In the current Realm implementation, the concept of control and effects are conflated. If the execution lifetime of a task or copy is coupled to it actually finishing its execution (as is the case for tasks and copies running on CPUs) this is a reasonable implementation. However, when the execution lifetime of a task or a copy is unrelated to when it finishes running (as can be the case with GPU tasks and copies) then this can potentially expose unnecessary latency in the execution of Realm programs. Original written by @lightsighter
I am filing this for tracking as a possible TODO item on the list. Most likely it won't be worked on until a compelling use case presents itself. However, I do plan to estimate the scope of work and a do a design proposal while fresh on the details of the events state machine.
In the current Realm implementation, the concept of control and effects are conflated. If the execution lifetime of a task or copy is coupled to it actually finishing its execution (as is the case for tasks and copies running on CPUs) this is a reasonable implementation. However, when the execution lifetime of a task or a copy is unrelated to when it finishes running (as can be the case with GPU tasks and copies) then this can potentially expose unnecessary latency in the execution of Realm programs. Original written by @lightsighter
I am filing this for tracking as a possible TODO item on the list. Most likely it won't be worked on until a compelling use case presents itself. However, I do plan to estimate the scope of work and a do a design proposal while fresh on the details of the events state machine.