// retryOnEAGAIN retries a function until it does not return EAGAIN. // It will use an increasing delay between calls, and retry up to 20 times. // The function argument is expected to return an errno value, // and retryOnEAGAIN will return any errno value other than EAGAIN. // If all retries return EAGAIN, then retryOnEAGAIN will return EAGAIN. func retryOnEAGAIN(fn func() int32) int32 { … }