Merge pull request #7978 from staabm/win-usleep

Make sure we properly usleep() on windows rmdir/unlink
main
Jordi Boggiano 5 years ago committed by GitHub
commit f7f0a978bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -199,9 +199,15 @@ class Filesystem
*/
public function unlink($path)
{
if (!@$this->unlinkImplementation($path)) {
$unlinked = @$this->unlinkImplementation($path);
if (!$unlinked) {
// retry after a bit on windows since it tends to be touchy with mass removals
if (!Platform::isWindows() || (usleep(350000) && !@$this->unlinkImplementation($path))) {
if (Platform::isWindows()) {
usleep(350000);
$unlinked = @$this->unlinkImplementation($path);
}
if (!$unlinked) {
$error = error_get_last();
$message = 'Could not delete '.$path.': ' . @$error['message'];
if (Platform::isWindows()) {
@ -224,9 +230,15 @@ class Filesystem
*/
public function rmdir($path)
{
if (!@rmdir($path)) {
$deleted = @rmdir($path);
if (!$deleted) {
// retry after a bit on windows since it tends to be touchy with mass removals
if (!Platform::isWindows() || (usleep(350000) && !@rmdir($path))) {
if (Platform::isWindows()) {
usleep(350000);
$deleted = !@rmdir($path);
}
if (!$deleted) {
$error = error_get_last();
$message = 'Could not delete '.$path.': ' . @$error['message'];
if (Platform::isWindows()) {

Loading…
Cancel
Save