diff options
author | Filipe David Manana <[email protected]> | 2010-04-26 13:04:40 +0200 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2010-05-20 15:48:17 +0200 |
commit | 21a67b797e40df930b83bd407ffc165b3f4b91b2 (patch) | |
tree | 268a10e8d1d4cd00c30d3f5ded8f103d9699167a /lib/kernel/src/file_io_server.erl | |
parent | 3f53a96a8bd0cd4a18f819b6857e6a764706ede5 (diff) | |
download | otp-21a67b797e40df930b83bd407ffc165b3f4b91b2.tar.gz otp-21a67b797e40df930b83bd407ffc165b3f4b91b2.tar.bz2 otp-21a67b797e40df930b83bd407ffc165b3f4b91b2.zip |
Add file:advise/4 - a wrapper to the POSIX syscall posix_fadvise
Useful for informing the Operating System about the access pattern
for a file's data, so that it can adapt the caching strategy to
maximize disk IO performance.
Diffstat (limited to 'lib/kernel/src/file_io_server.erl')
-rw-r--r-- | lib/kernel/src/file_io_server.erl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/kernel/src/file_io_server.erl b/lib/kernel/src/file_io_server.erl index d0b30192b3..39dc32bb79 100644 --- a/lib/kernel/src/file_io_server.erl +++ b/lib/kernel/src/file_io_server.erl @@ -198,6 +198,14 @@ io_reply(From, ReplyAs, Reply) -> %%%----------------------------------------------------------------- %%% file requests +file_request({advise,Offset,Length,Advise}, + #state{handle=Handle}=State) -> + case ?PRIM_FILE:advise(Handle, Offset, Length, Advise) of + {error,_}=Reply -> + {stop,normal,Reply,State}; + Reply -> + {reply,Reply,State} + end; file_request({pread,At,Sz}, #state{handle=Handle,buf=Buf,read_mode=ReadMode}=State) -> case position(Handle, At, Buf) of |