On Fri, Oct 16, 2009 at 10:54:13AM +0200, Mladen Turk wrote:
On 16/10/09 10:39, Joe Orton wrote:

It seems like reasonable behaviour that the second apr_file_close() call
should fail, though it certainly isn't obvious from reading the docs.
How else do you expect it to behave?  You cannot close an fd twice.


I suppose it shouldn't crash the apr.
IMO either second call to open should fail or
the call to close should fail, but without actually calling the close().

I think the reporter meant "fail" when they said "crash".

I don't see any reason why it would crash on Unix: the first call to
apr_file_close() will set fd->filedes to -1 after calling close(), the
second one will call close(-1) and fail with EBADF.



I have two separate file descriptors. Second apr_file_close(file2) will fail even if file2->filedes==1.

So I understand that I have to handle such things by myself.

But if I can't close second handle why it is possible to open it successfully?

Regards,
Yura

Reply via email to