/[mldonkey]/mldonkey/src/utils/lib/store.ml
ViewVC logotype

Diff of /mldonkey/src/utils/lib/store.ml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by spiralvoice, Thu Jul 7 00:25:46 2005 UTC revision 1.6 by spiralvoice, Fri Sep 2 22:39:59 2005 UTC
# Line 50  let attrib = 1 lsl 30 Line 50  let attrib = 1 lsl 30
50    
51  (**************** UNIX I/O FUNCTIONS *******************)    (**************** UNIX I/O FUNCTIONS *******************)  
52        
 external ftruncate64 : Unix.file_descr -> int64 -> unit =  
   "mld_ftruncate_64"  
 external seek64 : Unix.file_descr -> int64 -> Unix.seek_command -> int64 =  
   "unix_lseek_64"  
   
53  let rec iter_write fd s pos len =  let rec iter_write fd s pos len =
54    let nwrite = Unix.write fd s pos len in    let nwrite = Unix.write fd s pos len in
55    if nwrite < len then    if nwrite < len then
# Line 65  let really_write fd pos s = Line 60  let really_write fd pos s =
60    if verbose then begin    if verbose then begin
61        lprintf_nl "write %d %d" pos len;        lprintf_nl "write %d %d" pos len;
62      end;      end;
63    ignore (seek64 fd  (Int64.of_int pos) Unix.SEEK_SET);    ignore (Unix2.c_seek64 fd  (Int64.of_int pos) Unix.SEEK_SET);
64    iter_write fd s 0 len    iter_write fd s 0 len
65    
66  let rec iter_read fd s pos len =  let rec iter_read fd s pos len =
# Line 77  let really_read fd pos s len = Line 72  let really_read fd pos s len =
72    if verbose then begin    if verbose then begin
73        lprintf_nl "read %d %d" pos len;        lprintf_nl "read %d %d" pos len;
74      end;      end;
75    ignore (seek64 fd  (Int64.of_int pos) Unix.SEEK_SET);    ignore (Unix2.c_seek64 fd  (Int64.of_int pos) Unix.SEEK_SET);
76    iter_read fd s 0 len    iter_read fd s 0 len
77    
78  (********************* FILE FUNCTIONS *****************)  (********************* FILE FUNCTIONS *****************)
# Line 103  let file_store file str = Line 98  let file_store file str =
98    let len_all_pos = Array.length file.file_all_pos in    let len_all_pos = Array.length file.file_all_pos in
99    if pos >= len_all_pos then begin    if pos >= len_all_pos then begin
100        let new_size = (len_all_pos + 10) * 2 in        let new_size = (len_all_pos + 10) * 2 in
101        ftruncate64 file.file_fd (Int64.of_int (new_size * file.file_entry_size));        Unix2.c_ftruncate64 file.file_fd (Int64.of_int (new_size * file.file_entry_size)) false;
102        let new_tab = Array.create new_size 0 in        let new_tab = Array.create new_size 0 in
103        let new_weak = Weak.create new_size in        let new_weak = Weak.create new_size in
104        (try Array.blit file.file_all_pos 0 new_tab 0 pos        (try Array.blit file.file_all_pos 0 new_tab 0 pos

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26