Skip to content

Commit fb1d529

Browse files
committed
no prim special handling
1 parent b99f92c commit fb1d529

File tree

3 files changed

+22
-47
lines changed

3 files changed

+22
-47
lines changed

src/osiris_file.erl

Lines changed: 15 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
open/2,
1313
position/2,
1414
pread/3,
15-
prim_delete/1,
1615
read/2,
1716
read_file_info/1,
1817
sendfile/5,
@@ -178,16 +177,6 @@ delete(File) ->
178177
Mod = get_mod(),
179178
Mod:delete(File).
180179

181-
182-
-spec prim_delete(Filename) -> ok | {error, Reason} when
183-
Filename :: file:name_all(),
184-
Reason :: file:posix() | badarg.
185-
186-
prim_delete(File) ->
187-
Mod = get_mod(prim_file, File),
188-
Mod:delete(File).
189-
190-
191180
-spec ensure_dir(Name) -> ok | {error, Reason} when
192181
Name :: file:name_all(),
193182
Reason :: file:posix().
@@ -204,7 +193,7 @@ ensure_dir(Dir) ->
204193
| {no_translation, Filename :: unicode:latin1_binary()}.
205194
%% TODO
206195
list_dir(Dir) ->
207-
Mod = get_mod(prim_file),
196+
Mod = get_mod(),
208197
Mod:list_dir(Dir).
209198

210199

@@ -281,7 +270,7 @@ read(Handle, Size) ->
281270
Reason :: file:posix() | badarg.
282271
%% Todo
283272
read_file_info(File) ->
284-
Mod = get_mod(prim_file, File),
273+
Mod = get_mod(File),
285274
Mod:read_file_info(File).
286275

287276

@@ -316,47 +305,33 @@ truncate(Handle) ->
316305
Bytes :: iodata(),
317306
Reason :: file:posix() | badarg | terminated.
318307
write({Mod, Handle}, Data) ->
319-
Mod:write(Handle, Data);
308+
Mod:write(Handle, Data),
309+
try_write(Mod, Handle, Data);
320310
write(Handle, Data) ->
321311
?DEFAULT_FILE:write(Handle, Data).
322312

323-
%% -spec try_write(module(), term(), iodata()) ->
324-
%% ok | {error, term()}.
325-
%% try_write(Mod, Handle, Data) ->
326-
%% case erlang:function_exported(Mod, write, 2) of
327-
%% true ->
328-
%% Mod:write(Handle, Data);
329-
%% false ->
330-
%% file:write(Handle, Data)
331-
%% end.
313+
314+
-spec try_write(module(), term(), iodata()) ->
315+
ok | {error, term()}.
316+
try_write(Mod, Handle, Data) ->
317+
case erlang:function_exported(Mod, write, 2) of
318+
true ->
319+
Mod:write(Handle, Data);
320+
false ->
321+
?DEFAULT_FILE:write(Handle, Data)
322+
end.
332323

333324

334325
%% TODO code below just hack to make it work for now.
335326
-spec get_mod() -> module().
336327

337328
get_mod() ->
338-
?DEFAULT_FILE;
329+
?DEFAULT_FILE.
339330

340-
get_mod(prim_file) ->
341-
%% Just temporary solutin till I figure out why
342-
%% we even use prim_file?
343-
%% prim_file;
344-
?DEFAULT_FILE;
345331
get_mod(File) ->
346332
case filelib:is_file(File) of
347333
true ->
348334
?DEFAULT_FILE;
349335
false ->
350336
application:get_env(osiris, io_segment_module, ?DEFAULT_FILE)
351337
end.
352-
353-
354-
get_mod(prim_file, File) ->
355-
%% Just temporary solutin till I figure out why
356-
%% we even use prim_file?
357-
case filelib:is_file(File) of
358-
true ->
359-
?DEFAULT_FILE;
360-
false ->
361-
application:get_env(osiris, io_segment_module, ?DEFAULT_FILE)
362-
end.

src/osiris_file_default.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ copy(Source, Destination) ->
3333
file:copy(Source, Destination).
3434

3535
del_dir(Dir) ->
36-
file:del_dir(Dir).
36+
prim_file:del_dir(Dir).
3737

3838
delete(File) ->
3939
prim_file:delete(File).

src/osiris_log.erl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ maybe_fix_corrupted_files(#{dir := Dir}) ->
631631
[begin
632632
?INFO("deleting left over segment '~s' in directory ~s",
633633
[F, Dir]),
634-
ok = osiris_file:prim_delete(filename:join(Dir, F))
634+
ok = osiris_file:delete(filename:join(Dir, F))
635635
end|| F <- orphaned_segments(Dir)],
636636
ok;
637637
maybe_fix_corrupted_files([IdxFile]) ->
@@ -664,16 +664,16 @@ maybe_fix_corrupted_files(IdxFiles) ->
664664
N when N =< ?HEADER_SIZE_B ->
665665
% if the segment doesn't contain any chunks, just delete it
666666
?WARNING("deleting an empty segment file: ~0p", [LastSegFile]),
667-
ok = osiris_file:prim_delete(LastIdxFile),
668-
ok = osiris_file:prim_delete(LastSegFile),
667+
ok = osiris_file:delete(LastIdxFile),
668+
ok = osiris_file:delete(LastSegFile),
669669
maybe_fix_corrupted_files(IdxFiles -- [LastIdxFile]);
670670
LastSegFileSize ->
671671
ok = truncate_invalid_idx_records(LastIdxFile, LastSegFileSize)
672672
catch missing_file ->
673673
% if the last segment is missing, just delete its index
674674
?WARNING("deleting index of the missing last segment file: ~0p",
675675
[LastSegFile]),
676-
ok = osiris_file:prim_delete(LastIdxFile),
676+
ok = osiris_file:delete(LastIdxFile),
677677
maybe_fix_corrupted_files(IdxFiles -- [LastIdxFile])
678678
end.
679679

@@ -896,8 +896,8 @@ chunk_id_index_scan0(Fd, ChunkId) ->
896896
delete_segment_from_index(Index) ->
897897
File = segment_from_index_file(Index),
898898
?DEBUG("osiris_log: deleting segment ~ts", [File]),
899-
ok = osiris_file:prim_delete(Index),
900-
ok = osiris_file:prim_delete(File),
899+
ok = osiris_file:delete(Index),
900+
ok = osiris_file:delete(File),
901901
ok.
902902

903903
truncate_to(_Name, _Range, _EpochOffsets, []) ->

0 commit comments

Comments
 (0)