src/file_handle_cache.erl
22 months ago Merging default into bug21673 and correcting specs and types
22 months ago Introduced and used ok_or_error2(A,B). Also verified everything seems happy under R13B03
22 months ago cleanup
22 months ago {'ok', A} -> rabbit_types:ok(A)
22 months ago {'ok' | error(...)} -> rabbit_types:ok_or_error(...)
22 months ago {error, A} -> rabbit_types:error(A)
2010-04-30 merge bug22616 into bug21673
2010-04-30 cherry-pick file_handle_cache from bug21673
2010-04-30 Add missing specs
2010-04-30 Make the logic on result of soft_close match that on hard_close (i.e. full put if there's an error. Don't touch the gb_tree if there's no error. Also, revert back to two diffs for client callbacks and mrefs
2010-04-30 gb_trees:delete crashes if the key is not in the tree. I kid you not.
2010-04-30 reduce_timer_set => timer_ref
2010-04-30 Don't allow lots of timers to be started
2010-04-30 Merging heads
2010-04-30 Change register_callback to a cast, don't send messages in absence of a callback, and combine two dicts
2010-04-30 cosmetic
2010-04-30 fix error handling in fhc:clear
2010-04-30 cosmetic
2010-04-29 refactor: made 'close' control flow more obvious
2010-04-29 cosmetic changes and a little bit of refactoring on the file handle cache
2010-04-29 refactor: extract age tree manipulation
2010-04-29 made logic in fhc:close1 less obscure
2010-04-29 cosmetic
2010-04-29 cosmetic
2010-04-29 Allow people to specify append, but silently map it to write
2010-04-29 Minor corrections to specs
2010-04-29 clean up fhc sigs
2010-04-29 cosmetic
2010-04-15 cosmetic and minor refactoring
2010-04-07 Fix a leak in the fhc - all clients of the fhc now have a monitor created for them to enable us to tidy up after the process dies. The distinction between these monitors and the ones created in release_on_death is that the release_on_death ones are not stored in the client_mrefs dict, thus if a monitor DOWN message appears which we can't find in that dict, it is assumed it is a release_on_death monitor
2010-04-04 Mistake in opening files leading to process dictionary being wrongly populated and updated when file opening fails (eg enoent)
2010-02-18 Several fixes:
2010-02-10 Merging default into bug21673 and correcting further copyright dates
2010-01-21 fixed²
2010-01-21 fixed
2010-01-20 Given we know all of those processes are about to be enabled, the order in which we do that is actually irrelevant
2010-01-20 A mistake in the error case in accept, and elimination of one reverse
2010-01-19 documentation
2010-01-19 merging in from bug21673
2010-01-19 documentation tweaks
2010-01-19 The motivation for the cast in init is that if the first obtain blocks then without the cast, rabbit won't startup because of the fact that start_link blocks on init thus the boot process won't finish. Switched to monitoring the spawned process which is much much nicer than passing through a fun to be run at the end of the process and is a much more generic solution anyway.
2010-01-18 Initial pass at solution. Seems to work. Interesting realisation that the fhc server was never previously running (post new boot sequence).
2009-12-03 cosmetic
2009-12-03 Some renaming in the fhc and associated changes in qi and ms.
2009-12-02 cosmetic
2009-12-02 Up to 11kHz persistent on my home machine. Still a little way off the 13kHz that I was getting before, but there were bugs in the previous QI (eg missing syncs) which could well have led to the old version being too fast. Added two functions to fhc: delete/1 which deletes without flushing any data at all. It will refuse to delete if the file isn't open; discard_write_buffer/1 which does what it says. We use the latter after scattering the journal as after we hit each segment, we sync the segment, so at that point there's no need at all to force out the data in the fhc for the journal prior to truncation.
2009-11-25 typeos to novel
2009-11-25 merging heads
2009-11-25 A novel
2009-11-25 cosmetic
2009-11-25 merging heads
2009-11-25 Stop using _misc:cmd and use os:cmd instead
2009-11-25 use plain, old gen_server instead of gen_server2 - for better compatibility
2009-11-25 cosmetic
2009-11-25 Make sure that trusted_offset in open1 is set to an absolute offset
2009-11-25 merging heads
2009-11-25 Utterly baffled. I thought this was the obvious refactoring I was doing earlier, but apparently not. Anyway, this works.
2009-11-25 cosmetic
2009-11-25 inlining
2009-11-25 Corrected spec for open and inlined the internal versions. Also used the with_flushed_handles for truncate and position. It breaks sync if you do *both* the flushed form and then the obvious refactoring within it (i.e. pull the Handle1 up) and I can't quite see why