| 123456789101112131415161718192021222324252627282930 | 
							- // Copyright (C) 2015 The Syncthing Authors.
 
- //
 
- // This Source Code Form is subject to the terms of the Mozilla Public
 
- // License, v. 2.0. If a copy of the MPL was not distributed with this file,
 
- // You can obtain one at https://mozilla.org/MPL/2.0/.
 
- //go:build linux || android
 
- // +build linux android
 
- package fs
 
- import (
 
- 	"os"
 
- 	"syscall"
 
- 	"time"
 
- )
 
- // Lstat is like os.Lstat, except lobotomized for Android. See
 
- // https://forum.syncthing.net/t/2395
 
- func (*BasicFilesystem) underlyingLstat(name string) (fi os.FileInfo, err error) {
 
- 	for i := 0; i < 10; i++ { // We have to draw the line somewhere
 
- 		fi, err = os.Lstat(name)
 
- 		if err, ok := err.(*os.PathError); ok && err.Err == syscall.EINTR {
 
- 			time.Sleep(time.Duration(i+1) * time.Millisecond)
 
- 			continue
 
- 		}
 
- 		return
 
- 	}
 
- 	return
 
- }
 
 
  |