Describe the bug
If the last return of the head of a batched task ring was PARSEC_HOOK_RETURN_AGAIN then we drop the ring and execute the task. That way we lose the non-lead members of the ring so they will never be touched again.
See https://github.com/ICLDisco/parsec/blob/master/parsec/mca/device/device_gpu.c#L2640 where we jump to the schedule_task label and the callback will make the task a singleton. Instead, we should splice the ring into the pending_tasks list and get the head out.
Describe the bug
If the last return of the head of a batched task ring was
PARSEC_HOOK_RETURN_AGAINthen we drop the ring and execute the task. That way we lose the non-lead members of the ring so they will never be touched again.See https://github.com/ICLDisco/parsec/blob/master/parsec/mca/device/device_gpu.c#L2640 where we jump to the
schedule_tasklabel and the callback will make the task a singleton. Instead, we should splice the ring into the pending_tasks list and get the head out.