Current section

Files

Jump to
polly src polly_ffi.erl
Raw

src/polly_ffi.erl

-module(polly_ffi).
-export([
readdir/1,
lstat/1,
repeatedly/3
]).
-include_lib("kernel/include/file.hrl").
readdir(Dir) ->
case file:list_dir(Dir) of
{ok, Filenames} ->
{ok, [unicode:characters_to_binary(Filename) || Filename <- Filenames]};
{error, Reason} ->
{error, Reason}
end.
lstat(Path) ->
file:read_link_info(Path, [{time, posix}]).
repeatedly(Timeout, State, Callback) ->
Pid = spawn(fun() -> do_repeatedly(Timeout, State, Callback) end),
Stop = fun() -> Pid ! stop end,
Stop.
do_repeatedly(Timeout, State, Callback) ->
receive
stop -> ok
after Timeout ->
NewState = Callback(State),
do_repeatedly(Timeout, NewState, Callback)
end.