Ryan Liptak af835111fa Allow recovering from Walker.next errors without continually hitting the same error
Before this commit, if Walker.next errored with e.g. `error.AccessDenied` and the caller did something like `while (true) { walker.next() catch continue; }`, then the directory that errored with AccessDenied would be continually iterated in each `next` call and error every time with AccessDenied.

After this commit, the directory that errored will be popped off the stack before the error is returned, meaning that in the subsequent `next` call, it won't be retried and the Walker will continue with whatever directories remain on its stack.

For a real example, before this commit, walking `/proc/` on my system would infinitely loop due to repeated AccessDenied errors on the same directory. After this commit, I am able to walk `/proc/` on my system fully (skipping over any directories that are unable to be iterated).
2023-06-08 02:16:15 -07:00
..
2023-04-30 18:16:04 -07:00
2023-05-29 22:08:43 +03:00
2023-06-07 19:27:17 -07:00
2023-04-30 18:16:04 -07:00
2023-05-23 17:55:59 -07:00
2022-12-13 13:14:20 +02:00
2023-04-30 18:16:04 -07:00
2023-04-22 13:09:15 +03:00
2023-05-23 17:55:59 -07:00
2023-04-30 18:16:04 -07:00
2023-04-30 18:16:04 -07:00
2023-04-30 18:16:04 -07:00
2023-05-23 17:55:59 -07:00
2023-04-30 18:16:04 -07:00
2023-04-30 18:16:04 -07:00
2023-04-23 21:06:21 +03:00
2023-04-23 21:06:21 +03:00
2023-05-23 17:55:59 -07:00
2023-03-17 17:50:25 +01:00
2023-04-28 13:24:43 -07:00
2023-05-26 21:42:19 -07:00
2023-04-30 18:16:04 -07:00
2022-04-15 17:01:01 -05:00