Current section

Files

Jump to
ra src ra_file.erl
Raw

src/ra_file.erl

%% This Source Code Form is subject to the terms of the Mozilla Public
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
%% Copyright (c) 2017-2023 Broadcom. All Rights Reserved. The term Broadcom refers to Broadcom Inc. and/or its subsidiaries.
%%
%% @hidden
-module(ra_file).
-include("ra.hrl").
-define(HANDLE_EAGAIN(Op),
case Op of
{error, eagain} ->
?DEBUG("EAGAIN during file operation, retrying once in 10ms...", []),
timer:sleep(10),
case Op of
{error, eagain} = Err ->
?DEBUG("EAGAIN again during file operation", []),
Err;
Res ->
Res
end;
Res ->
Res
end).
-export([
sync/1
]).
sync(Fd) ->
?HANDLE_EAGAIN(file:sync(Fd)).