1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-24 14:50:17 +03:00
Zbigniew Jędrzejewski-Szmek 00a8cf7763 basic/copy: use sendfile smarter
We called sendfile with 16kb (a.k.a. COPY_BUFFER_SIZE) as the maximum
number of bytes to copy. This seems rather inefficient, especially with
large files. Instead, call sendfile with a "large" maximum.

What "large" max means is a bit tricky: current file offset + max
must fit in loff_t. This means that as we call sendfile more than once,
we have to lower the max size.

With this patch, test-copy calls sendfile twice, e.g.:
sendfile(4, 3, NULL, 9223372036854775807) = 738760
sendfile(4, 3, NULL, 9223372036854037047) = 0
The second call is necessary to determine EOF.
2016-03-15 14:54:27 -04:00
2015-07-06 17:47:38 +02:00
2016-03-15 14:54:27 -04:00
2016-02-12 19:10:01 +01:00
2016-02-23 13:30:09 +01:00
2015-08-31 18:12:37 +02:00
2015-06-03 00:22:53 +02:00
2014-06-04 15:41:10 -04:00
2016-02-24 11:56:11 +01:00
2016-03-05 11:22:45 -05:00
2016-02-23 13:30:09 +01:00

systemd - System and Service Manager

Build Status
Coverity Scan Status

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.

Description
The systemd System and Service Manager
Readme 567 MiB
Languages
C 89.2%
Python 5.3%
Shell 4.1%
Meson 1.2%