Date | Commit message (Collapse) |
|
Oops...
|
|
Do not batch processing of requests or buffered output.
We cannot have clients running "dtas-tl cat" or similar
to dump a gigantic playlist cause us to have gaps in our
playback.
Since we implemented a tunable tracklist limit, we can
also remove the hardcoded 100 element limit for buffered
messages while we're at it; now the tracklist limit affects
maximum memory use.
|
|
Ruby 2.3 will have `exception: false' support in socket-related
classes. Additionally, 2.3 will implement the existing
IO#*_nonblock methods more efficiently than before by avoiding
the hash allocation necessary for keywords.
For users on older Rubies, we'll continue supporting them with
compatibility wrappers; even Ruby 1.9.3 users (for now).
|
|
We never use the full return value of the recvmsg* methods,
so those allocations are wasted.
|
|
Hopefully this makes the code less daunting to newcomers
|
|
I'm done with dealing with proprietary bug trackers.
|
|
The documentation part is managed by the new
Documentation/update-copyright script. For the future, the rest may
be managed by the update-copyright tool in gnulib
|
|
Favor IO.select over IO#wait since the latter makes another
ioctl syscall (which we'll make anyways for IO#nread).
Having BasicSocket#recvmsg and recvmsg_nonblock detect the buffer
size requires extra syscalls, so pass explict maxmesglen, flags, and
maxcontrollen args to elide auto-detection since we already have the
buffered amount from IO#nread.
This cuts more syscalls from the "dtas-tl cat" invocation with
larger tracklists.
|
|
We only drop dead connections, not live ones. This is noticeable
on my home machine when using the "powersave" CPU governor.
|
|
I'm still normal, and still trolling, but 80x24.org will be epic :)
|
|
We don't deal with user-space buffers, so we should be fine
using this compatibility layer and only checking the kernel
buffers (until rbx implements a proper solution).
|
|
We don't need it since IO#read(bytes, buf) will convert to
ASCII-8BIT anyways. Everywhere else, we ensure path names are
already binary. We do this mainly at the client layer before using
Shellwords to escape the paths.
We also must be careful about parsing output from soxi/avprobe
which can show us metadata in whatever encoding is in the file.
We must still handle data from parsing command output as binary,
as the encoding of file metadata tends to vary.
This also should buy us Syck compatibility for Ruby 1.9.3 users
on Debian systems where Ruby 1.9.3 still uses Syck.
|
|
All files we distribute in the tarball need to have a
copyright/license specified for Savannah.
We don't need the example state file anymore.
|
|
Rename COPYRIGHT -> COPYING, as that seems to be the more common
name for the GPLv3 license file. Kill all rdoc, since I don't
agree with HTML documentation and we do not expose any Ruby APIs.
|
|
|