diff options
author | John Högberg <[email protected]> | 2019-03-29 14:47:23 +0100 |
---|---|---|
committer | John Högberg <[email protected]> | 2019-03-29 14:47:23 +0100 |
commit | 29aebc72390d351d3882f21e4c16b9f5b93e272f (patch) | |
tree | ab9d5b1bbde8e8724525db47342b968b86fb4c3a /lib/stdlib | |
parent | 5cf819d51eec27365692d2783259129dce0395d7 (diff) | |
parent | 46e1565e73bc4490d29f0193146d4d75d9dba226 (diff) | |
download | otp-29aebc72390d351d3882f21e4c16b9f5b93e272f.tar.gz otp-29aebc72390d351d3882f21e4c16b9f5b93e272f.tar.bz2 otp-29aebc72390d351d3882f21e4c16b9f5b93e272f.zip |
Merge branch 'john/kernel/compressed-file-read-degradation/OTP-15706/ERIERL-336' into maint
* john/kernel/compressed-file-read-degradation/OTP-15706/ERIERL-336:
erl_tar: Use read_ahead when reading compressed tar files
kernel: Fix performance regression on reading compressed files
Diffstat (limited to 'lib/stdlib')
-rw-r--r-- | lib/stdlib/src/erl_tar.erl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/stdlib/src/erl_tar.erl b/lib/stdlib/src/erl_tar.erl index d8b8f466b1..7064fcacfa 100644 --- a/lib/stdlib/src/erl_tar.erl +++ b/lib/stdlib/src/erl_tar.erl @@ -324,7 +324,7 @@ do_open(Name, Mode) when is_list(Mode) -> open1({binary,Bin}, read, _Raw, Opts) when is_binary(Bin) -> case file:open(Bin, [ram,binary,read]) of {ok,File} -> - _ = [ram_file:uncompress(File) || Opts =:= [compressed]], + _ = [ram_file:uncompress(File) || lists:member(compressed, Opts)], {ok, #reader{handle=File,access=read,func=fun file_op/2}}; Error -> Error @@ -357,7 +357,7 @@ open_mode([read|Rest], false, Raw, Opts) -> open_mode([write|Rest], false, Raw, Opts) -> open_mode(Rest, write, Raw, Opts); open_mode([compressed|Rest], Access, Raw, Opts) -> - open_mode(Rest, Access, Raw, [compressed|Opts]); + open_mode(Rest, Access, Raw, [compressed,read_ahead|Opts]); open_mode([cooked|Rest], Access, _Raw, Opts) -> open_mode(Rest, Access, [], Opts); open_mode([], Access, Raw, Opts) -> |