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 | 61a733bfa51031d4722a3afa6965f05ec0a06a91 (patch) | |
| tree | 00f4f9103e76cc9bd8e03f74e82c02787fc51392 | |
| parent | 619389cc281976bcb0c03a4a6de0ffc29e394df8 (diff) | |
| download | rabbitmq-server-git-61a733bfa51031d4722a3afa6965f05ec0a06a91.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 51b96a68e1..949cdc5e07 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. |
