mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Save to cache dirty limit
This commit is contained in:
parent
b0379a1f48
commit
9955b928c8
2 changed files with 22 additions and 0 deletions
|
|
@ -49,6 +49,7 @@ type
|
|||
function Flush: Boolean;
|
||||
function Read(var Buffer; Count: LongInt): LongInt; override;
|
||||
function Write(const Buffer; Count: LongInt): LongInt; override;
|
||||
property DirtyLimit: Int64 read FDirtyLimit write FDirtyLimit;
|
||||
property AutoSync: Boolean read FAutoSync write SetAutoSync;
|
||||
property FileName: String read FFileName;
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -92,6 +92,13 @@ type
|
|||
FFileExistsOption: TFileSourceOperationOptionFileExists;
|
||||
FDirExistsOption: TFileSourceOperationOptionDirectoryExists;
|
||||
|
||||
{$IF DEFINED(LINUX)}
|
||||
FCache: record
|
||||
Device: QWord;
|
||||
DirtyLimit: Int64
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
FCurrentFile: TFile;
|
||||
FCurrentTargetFilePath: String;
|
||||
|
||||
|
|
@ -505,6 +512,7 @@ var
|
|||
bDeleteFile: Boolean = False;
|
||||
{$IFDEF LINUX}
|
||||
Sbfs: TStatFS;
|
||||
Info: BaseUnix.Stat;
|
||||
{$ENDIF}
|
||||
|
||||
procedure OpenSourceFile;
|
||||
|
|
@ -756,7 +764,16 @@ begin
|
|||
begin
|
||||
case UInt32(Sbfs.fstype) of
|
||||
NFS_SUPER_MAGIC:
|
||||
begin
|
||||
TargetFileStream.AutoSync:= True;
|
||||
if (fpFStat(TargetFileStream.Handle, Info) = 0) then
|
||||
begin
|
||||
if FCache.Device = QWord(Info.st_dev) then
|
||||
TargetFileStream.DirtyLimit:= FCache.DirtyLimit
|
||||
else
|
||||
FCache.Device:= QWord(Info.st_dev);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
|
@ -899,6 +916,10 @@ begin
|
|||
if FVerify then Context.Free;
|
||||
if Assigned(TargetFileStream) then
|
||||
begin
|
||||
{$IF DEFINED(LINUX)}
|
||||
if TargetFileStream.AutoSync then
|
||||
FCache.DirtyLimit:= TargetFileStream.DirtyLimit;
|
||||
{$ENDIF}
|
||||
FreeAndNil(TargetFileStream);
|
||||
if TotalBytesToRead > 0 then
|
||||
begin
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue