Files
podman/vendor/github.com/opencontainers/runc/internal/linux/eintr.go
renovate[bot] 89ddae8b12 Update common, image, and storage deps to 94e31d2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 01:50:27 +00:00

29 lines
510 B
Go

package linux
import (
"errors"
"golang.org/x/sys/unix"
)
// retryOnEINTR takes a function that returns an error and calls it
// until the error returned is not EINTR.
func retryOnEINTR(fn func() error) error {
for {
err := fn()
if !errors.Is(err, unix.EINTR) {
return err
}
}
}
// retryOnEINTR2 is like retryOnEINTR, but it returns 2 values.
func retryOnEINTR2[T any](fn func() (T, error)) (T, error) {
for {
val, err := fn()
if !errors.Is(err, unix.EINTR) {
return val, err
}
}
}