2007-11-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

Added direct I/O support. The current implementation uses O_DIRECT,
	which is not posix standard and is tested on linux 2.6.21.
	Currently only file allocation uses direct I/O.
	* src/SingleFileAllocationIterator.{h, cc}
	* test/SingleFileAllocationIteratorTest.cc
	* src/MultiFileAllocationIterator.{h, cc}
	* test/MultiFileAllocationIteratorTest.cc
	* src/BinaryStream.h
	* src/DiskWriter.h
	* src/AbstractDiskWriter.{h, cc}
	* src/ByteArrayDiskWriter.h
	* src/DiskAdaptor.h
	* src/AbstractSingleDiskAdaptor.{h, cc}
	* src/MultiDiskAdaptor.{h, cc}
	* src/FileAllocationEntry.cc
	* src/Util.{h, cc}
	* src/OptionHandlerFactory.cc
	* src/prefs.h
	* src/version_usage.cc
	* src/option_processing.cc

	Moved FileAllocationMan::markCurrentFileAllocationEntryDone() to
	handleException.
	* src/MultiFileAllocationIterator.cc

	Added EINTR handling
	* src/SocketCore.cc
This commit is contained in:
Tatsuhiro Tsujikawa 2007-11-28 14:22:28 +00:00
parent a022a1826b
commit 5a2f398eca
32 changed files with 320 additions and 150 deletions

View file

@ -74,6 +74,10 @@ public:
virtual FileAllocationIteratorHandle fileAllocationIterator();
virtual void enableDirectIO();
virtual void disableDirectIO();
void setDiskWriter(const DiskWriterHandle diskWriter) {
this->diskWriter = diskWriter;
}