Searched hist:c5e52ecb (Results 1 - 1 of 1) sorted by relevance
/haiku/src/system/kernel/cache/ | ||
H A D | block_cache.cpp | diff c5e52ecb Wed Feb 17 09:36:40 MST 2010 Axel Dörfler <axeld@pinc-software.de> * cache_sync_transaction() now puts all blocks into the BlockWriter, and therefore does not unlock anymore while iterating over the transactions. This gave other threads the opportunity to finish a transaction, causing bug #5412. Also, the BlockWriter will now always close transactions on its own, and you need to pass the transaction hash iterator to Add(). * Also, transactions that contain blocks that are currently written back will be ignored by the block writer, as well as cache_sync_transaction(). This fixes bug #5415. * Improved error handling if BlockWriter fails to write back blocks. Most notably, they are no longer left busy_writing, and the functions calling it do proper error reporting (besides block_cache_discard() that does not return any erro code; I've added a TODO note there for now). * The BlockWriter now starts with a larger array once it has to allocate one. * One can now limit the number of blocks that go into a BlockWriter. This is used by the block writer thread, that shouldn't always write back everything every two seconds. * Also, the fixed array is larger now (leaving enough space such that the block writer/notifier does not need to allocate anything). * And finally, if allocating the array fails, the BlockWriter falls back to the synchronous write back used previously. IOW it will never write back less blocks than you ask for. * Added static BlockWriter::WriteBlock() method replacing write_cached_block(). * Forgot to rename block_cache::busy_count to busy_reading_count. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35510 a95241bf-73f2-0310-859d-f6bbb57e9c96 |
Completed in 164 milliseconds