[85224] trunk/dports/net/libtorrent-rasterbar

devans at macports.org devans at macports.org
Tue Oct 11 13:23:13 PDT 2011


Revision: 85224
          http://trac.macports.org/changeset/85224
Author:   devans at macports.org
Date:     2011-10-11 13:23:13 -0700 (Tue, 11 Oct 2011)
Log Message:
-----------
libtorrent-rasterbar: apply upstream patch to speed up hashing.

Modified Paths:
--------------
    trunk/dports/net/libtorrent-rasterbar/Portfile

Added Paths:
-----------
    trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff

Modified: trunk/dports/net/libtorrent-rasterbar/Portfile
===================================================================
--- trunk/dports/net/libtorrent-rasterbar/Portfile	2011-10-11 20:22:32 UTC (rev 85223)
+++ trunk/dports/net/libtorrent-rasterbar/Portfile	2011-10-11 20:23:13 UTC (rev 85224)
@@ -6,6 +6,7 @@
 name            libtorrent-rasterbar
 conflicts       libtorrent-rasterbar-devel
 version         0.15.8
+revision        1
 license         Norberg/Rasterbar
 categories      net
 maintainers     devans openmaintainer
@@ -49,7 +50,8 @@
     }
 }
 
-patchfiles      patch-bindings-python-setup.py.in.diff
+patchfiles      patch-bindings-python-setup.py.in.diff \
+                patch-r6101-speeds-up-hashing.diff
 
 post-patch      {
                     reinplace "s|__MP_BUILD_ARCH__|${build_arch}|" ${worksrcpath}/bindings/python/setup.py.in

Added: trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff
===================================================================
--- trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff	                        (rev 0)
+++ trunk/dports/net/libtorrent-rasterbar/files/patch-r6101-speeds-up-hashing.diff	2011-10-11 20:23:13 UTC (rev 85224)
@@ -0,0 +1,93 @@
+Index: src/file_pool.cpp
+===================================================================
+--- src/file_pool.cpp	(revision 6100)
++++ src/file_pool.cpp	(revision 6101)
+@@ -70,7 +70,8 @@
+ 
+ 			if ((((e.mode & file::rw_mask) != file::read_write)
+ 				&& ((m & file::rw_mask) == file::read_write))
+-				|| (e.mode & file::no_buffer) != (m & file::no_buffer))
++				|| (e.mode & file::no_buffer) != (m & file::no_buffer)
++				|| (e.mode & file::random_access) != (m & file::random_access))
+ 			{
+ 				// close the file before we open it with
+ 				// the new read/write privilages
+Index: src/file.cpp
+===================================================================
+--- src/file.cpp	(revision 6100)
++++ src/file.cpp	(revision 6101)
+@@ -172,19 +172,19 @@
+ 		const static open_mode_t mode_array[] =
+ 		{
+ 			// read_only
+-			{GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS},
++			{GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, 0},
+ 			// write_only
+-			{GENERIC_WRITE, FILE_SHARE_READ, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS},
++			{GENERIC_WRITE, FILE_SHARE_READ, OPEN_ALWAYS, 0},
+ 			// read_write
+-			{GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS},
++			{GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, 0},
+ 			// invalid option
+ 			{0,0,0,0},
+ 			// read_only no_buffer
+-			{GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
++			{GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
+ 			// write_only no_buffer
+-			{GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
++			{GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
+ 			// read_write no_buffer
+-			{GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
++			{GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING },
+ 			// invalid option
+ 			{0,0,0,0}
+ 		};
+@@ -209,8 +209,11 @@
+ 		open_mode_t const& m = mode_array[mode & mode_mask];
+ 		DWORD a = attrib_array[(mode & attribute_mask) >> 12];
+ 
++		DWORD extra_flags = ((mode & random_access) ? FILE_FLAG_RANDOM_ACCESS : 0)
++			| (a ? a : FILE_ATTRIBUTE_NORMAL);
++
+ 		m_file_handle = CreateFile_(m_path.c_str(), m.rw_mode, m.share_mode, 0
+-			, m.create_mode, m.flags | (a ? a : FILE_ATTRIBUTE_NORMAL), 0);
++			, m.create_mode, m.flags | extra_flags, 0);
+ 
+ 		if (m_file_handle == INVALID_HANDLE_VALUE)
+ 		{
+@@ -272,8 +275,11 @@
+ #endif
+ 
+ #ifdef POSIX_FADV_RANDOM
+-		// disable read-ahead
+-		posix_fadvise(m_fd, 0, 0, POSIX_FADV_RANDOM);
++		if (mode & random_access)
++		{
++			// disable read-ahead
++			posix_fadvise(m_fd, 0, 0, POSIX_FADV_RANDOM);
++		}
+ #endif
+ 
+ #endif
+Index: include/libtorrent/file.hpp
+===================================================================
+--- include/libtorrent/file.hpp	(revision 6100)
++++ include/libtorrent/file.hpp	(revision 6101)
+@@ -100,6 +100,7 @@
+ 			no_buffer = 4,
+ 			mode_mask = rw_mask | no_buffer,
+ 			sparse = 8,
++			random_access = 32,
+ 
+ 			attribute_hidden = 0x1000,
+ 			attribute_executable = 0x2000,
+Index: ChangeLog
+===================================================================
+--- ChangeLog	(revision 6100)
++++ ChangeLog	(revision 6101)
+@@ -1,3 +1,5 @@
++	* don't open files in random-access mode (speeds up hashing)
++
+ 0.15.8 release
+ 
+ 	* allow NULL to be passed to create_torrent::set_comment and create_torrent::set_creator
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20111011/91cdc41a/attachment.html>


More information about the macports-changes mailing list