| 884 | let e = 0; |
| 885 | |
| 886 | const reread = (err, handle) => { |
| 887 | if (err) |
| 888 | return cb(err); |
| 889 | |
| 890 | this.readdir(handle, opts, (err, list) => { |
| 891 | const eof = (err && err.code === STATUS_CODE.EOF); |
| 892 | |
| 893 | if (err && !eof) |
| 894 | return this.close(handle, () => cb(err)); |
| 895 | |
| 896 | if (eof) { |
| 897 | return this.close(handle, (err) => { |
| 898 | if (err) |
| 899 | return cb(err); |
| 900 | cb(undefined, entries); |
| 901 | }); |
| 902 | } |
| 903 | |
| 904 | for (let i = 0; i < list.length; ++i, ++e) |
| 905 | entries[e] = list[i]; |
| 906 | |
| 907 | reread(undefined, handle); |
| 908 | }); |
| 909 | }; |
| 910 | return this.opendir(where, reread); |
| 911 | } |
| 912 | |