// If parent deadline itself does not allow buffer then set child timeout to zero. Otherwise
// compute child deadline such that at least buffer remains after it and before parent deadline.
if remaining < timeout {
timeout = max(0, remaining)
}
}