diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2010-08-22 18:19:14 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-08-22 18:19:14 +0100 |
commit | 8c3e7fe272cb84f066ade2906dc8ff453d6f5024 (patch) | |
tree | 00f4f9103e76cc9bd8e03f74e82c02787fc51392 | |
parent | 4283426a36a31919995c76906a2b7c624a4b4935 (diff) | |
download | rabbitmq-server-8c3e7fe272cb84f066ade2906dc8ff453d6f5024.tar.gz |
If we've obtained permission to open some fds and that turns out not to work out, then we should ensure that we inform the server as soon as we stop that the rest remain closed
-rw-r--r-- | src/file_handle_cache.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index 51b96a68..949cdc5e 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -567,7 +567,10 @@ reopen([{Ref, NewOrReopen, Handle} | RefNewOrReopenHdls], Tree, RefHdls) -> reopen(RefNewOrReopenHdls, gb_trees:insert(Now, Ref, Tree), [{Ref, Handle1} | RefHdls]); {error, Reason} -> - age_tree_delete(Handle #handle.last_used_at), + put_age_tree(Tree), + [age_tree_delete(Handle1 #handle.last_used_at) || + {_Ref1, _NewOrReopen1, Handle1} <- + [{Ref, NewOrReopen, Handle} | RefNewOrReopenHdls]], {error, Reason} end. |