From: Junio C Hamano Date: Mon, 07 Feb 2011 21:54:35 GMT Subject: Re: [msysGit] Re: [PATCH v4 5/5] mingw_rmdir: set errno=ENOTEMPTY when appropriate Message-ID: <7vk4hbtsro.fsf@alter.siamese.dyndns.org> In-Reply-To: Erik Faye-Lund writes: > On Mon, Feb 7, 2011 at 10:18 PM, Heiko Voigt wrote: > ... >> I think Johannes was referring to the case when a directory is busy. >> E.g. a process is running that has its working directory inside that >> directory. In that case ENOTEMPTY was not returned even though the >> directory is not empty. Thats what I read from the patch. > > I don't think that's the case either: > $ echo "int main() { while (1); }" | gcc -x c - -o foo/bin.exe > [kusma@HUE-PC:/git@work/xgetenv] > $ foo/bin.exe & > [2] 3188 > [kusma@HUE-PC:/git@work/xgetenv] > $ ./a.exe > rmdir: Directory not empty > errno: 41 (expected 41) I don't do windows, but I think Heiko is talking about running some process inside the directory that is getting removed. Assuming that your a.exe is to remove the 'foo' directory, you would need to run ./bin.exe after going into 'foo' directory, perhaps like this: $ (cd foo && ./bin.exe) & $ ./a.exe