Index: src/ch/CfgProperties.h =================================================================== diff -u -N -r6103ac74583f2136b821dc67515ed8469abd8155 -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/ch/CfgProperties.h (.../CfgProperties.h) (revision 6103ac74583f2136b821dc67515ed8469abd8155) +++ src/ch/CfgProperties.h (.../CfgProperties.h) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -88,8 +88,7 @@ PP_BFLAN, PP_BFUSENOBUFFERING, PP_BFBOUNDARYLIMIT, - PP_BUFFERCHUNKSIZE, - PP_BUFFERPAGESIZE, + PP_BFQUEUEDEPTH, PP_LOGENABLELOGGING, PP_LOGMAXSIZE, @@ -230,6 +229,7 @@ ADAPT_TASK_PROPERTY(PP_BFLAN, chcore::eTO_LANBufferSize); ADAPT_TASK_PROPERTY(PP_BFUSENOBUFFERING, chcore::eTO_DisableBuffering); ADAPT_TASK_PROPERTY(PP_BFBOUNDARYLIMIT, chcore::eTO_DisableBufferingMinSize); +ADAPT_TASK_PROPERTY(PP_BFQUEUEDEPTH, chcore::eTO_BufferQueueDepth); ADAPT_TASK_PROPERTY(PP_CMSETDESTATTRIBUTES, chcore::eTO_SetDestinationAttributes); ADAPT_TASK_PROPERTY(PP_CMSETDESTDATE, chcore::eTO_SetDestinationDateTime); Index: src/ch/OptionsDlg.cpp =================================================================== diff -u -N -r75318f0d3808d8d3c02dbc333c80b6d6e07fae13 -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 75318f0d3808d8d3c02dbc333c80b6d6e07fae13) +++ src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -303,6 +303,7 @@ PROP_CUSTOM_UINT(IDS_LANBUFFERSIZE_STRING, GetPropValue(GetConfig()), &CustomPropertyCallbackProc, 4); PROP_BOOL(IDS_USENOBUFFERING_STRING, GetPropValue(GetConfig())); PROP_UINT(IDS_LARGEFILESMINSIZE_STRING, GetPropValue(GetConfig())); + PROP_UINT(IDS_BUFFER_QUEUE_DEPTH, GetPropValue(GetConfig())); PROP_SEPARATOR(IDS_CFGLOGFILE_STRING); PROP_BOOL(IDS_CFGENABLELOGGING_STRING, GetPropValue(GetConfig())); @@ -411,6 +412,7 @@ SetPropValue(rConfig, GetUintProp(iPosition++)); SetPropValue(rConfig, GetBoolProp(iPosition++)); SetPropValue(rConfig, GetUintProp(iPosition++)); + SetPropValue(rConfig, GetUintProp(iPosition++)); // log file SKIP_SEPARATOR(iPosition); Index: src/ch/ch.rc =================================================================== diff -u -N -r503a68180cbb933c97e9af965744bf106994c05a -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/ch/ch.rc (.../ch.rc) (revision 503a68180cbb933c97e9af965744bf106994c05a) +++ src/ch/ch.rc (.../ch.rc) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -803,6 +803,7 @@ IDS_USENOBUFFERING_STRING "Disable buffering for large files" IDS_LARGEFILESMINSIZE_STRING "Minimum file size for which buffering should be turned off" + IDS_BUFFER_QUEUE_DEPTH "Buffer queue depth" IDS_OPTIONSBUFFER_STRING "Buffer" IDS_ONEDISKBUFFERSIZE_STRING "Buffer size for copying inside one physical disk boundary" Index: src/ch/resource.h =================================================================== diff -u -N -r503a68180cbb933c97e9af965744bf106994c05a -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/ch/resource.h (.../resource.h) (revision 503a68180cbb933c97e9af965744bf106994c05a) +++ src/ch/resource.h (.../resource.h) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -493,6 +493,7 @@ #define IDS_CFGLOGLEVEL 8099 #define IDS_CFGLOGLEVEL_VALUES 8100 #define IDS_UPDATE_FREQUENCIES 8101 +#define IDS_BUFFER_QUEUE_DEPTH 8102 #define IDS_MENUCOPY_STRING 9000 #define IDS_MENUMOVE_STRING 9001 #define IDS_MENUCOPYMOVESPECIAL_STRING 9002 Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -N -rea7d62521e78371cff90579749d136cb928c9e88 -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision ea7d62521e78371cff90579749d136cb928c9e88) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -702,7 +702,7 @@ rLog.logi(strFormat.c_str()); - rBuffer.ReinitializeBuffers(5, rBufferSizes.GetMaxSize()); + rBuffer.ReinitializeBuffers(GetTaskPropValue(rConfig), rBufferSizes.GetMaxSize()); return true; // buffer adjusted } Index: src/libchcore/TTaskConfigTracker.cpp =================================================================== diff -u -N -r6103ac74583f2136b821dc67515ed8469abd8155 -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/libchcore/TTaskConfigTracker.cpp (.../TTaskConfigTracker.cpp) (revision 6103ac74583f2136b821dc67515ed8469abd8155) +++ src/libchcore/TTaskConfigTracker.cpp (.../TTaskConfigTracker.cpp) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -211,8 +211,10 @@ return eTO_LANBufferSize; else if(strOption == TaskPropData::GetPropertyName()) return eTO_DisableBuffering; - else if(strOption == TaskPropData::GetPropertyName()) + else if (strOption == TaskPropData::GetPropertyName()) return eTO_DisableBufferingMinSize; + else if (strOption == TaskPropData::GetPropertyName()) + return eTO_BufferQueueDepth; else if(strOption == TaskPropData::GetPropertyName()) return eTO_SetDestinationAttributes; Index: src/libchcore/TTaskConfiguration.h =================================================================== diff -u -N -r11b0a299be97bc3afaa633d6522c17b214ba3b79 -r73d92717b7ba780c7aea1489a5eaa87404afa408 --- src/libchcore/TTaskConfiguration.h (.../TTaskConfiguration.h) (revision 11b0a299be97bc3afaa633d6522c17b214ba3b79) +++ src/libchcore/TTaskConfiguration.h (.../TTaskConfiguration.h) (revision 73d92717b7ba780c7aea1489a5eaa87404afa408) @@ -39,6 +39,7 @@ eTO_LANBufferSize, eTO_DisableBuffering, eTO_DisableBufferingMinSize, + eTO_BufferQueueDepth, eTO_SetDestinationAttributes, eTO_SetDestinationDateTime, @@ -100,6 +101,7 @@ TASK_PROPERTY(eTO_DisableBuffering, bool, _T("Operation.Buffering.DisableBufferingForLargeFiles"), true); TASK_PROPERTY_MINMAX(eTO_DisableBufferingMinSize, int, _T("Operation.Buffering.MinSizeOfFileToDisableBuffering"), 2097152, 1, 0xffffffff); +TASK_PROPERTY_MINMAX(eTO_BufferQueueDepth, unsigned int, _T("Operation.Buffering.BufferQueueDepth"), 2, 1, 100); TASK_PROPERTY(eTO_SetDestinationAttributes, bool, _T("Operation.SetDestinationAttributes"), true); TASK_PROPERTY(eTO_SetDestinationDateTime, bool, _T("Operation.SetDestinationTime"), true);