SYS_futex is expected from system C library.
in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex)
rv32 is using 64bit time_t from get go unlike other 32bit architectures
in glibc, therefore it wont have NR_futex defined but just NR_futex_time64
this aliases it to NR_futex so that SYS_futex is then defined for rv32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Without this marker partly written messages cannot be detected before
processing them.
Change-Id: I38802e9df2a09d1ad0371aba80fc1523cec2ddfe
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
With this adaption the probability that a message will be written
completely is higher.
On high load there are 647x/sec EAGAIN failures without this patch
and 570x/sec failures with this patch.
(The "JackClientSocket::Write time out" log messages were counted when
simulating continuously Xruns.)
In case of EAGAIN failures the message will now completely ignored.
Therefore it the socket stream will only contain complete messages
and no partly written messages. Such partly written messages would be
interpreted wrongly by the reader and the reader would detect the start
of the next message in the middle of the message. This could result in
"Unknown request" error logs but could also end up with assertions due
to request attributes which are out of range.
When using POST_PACKED_STRUCTURE JackRequest structures would be
aligned to 64b on aarch64 due to packing is disabled on aarch64 in
systemdeps, this causes issues with decoding some JackRequests. To
overcome this issue by defining POST_PACKED_STRUCTURE_FORCED_AARCH64
which is not undefed for aarch64.
It is only used for JackRequest structures, since enabling for all uses
cases in Jack jackd startup failed with "Bus Error".
Change-Id: I9460840f11870bb699744da09a5dcacddb828d2c
Signed-off-by: Adam Miartus <amiartus@de.adit-jv.com>
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
to always use the same initialization of the object.
Change-Id: Ia0931b4dcfcef7a59c2f04a2a06b36645bb0e1e1
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Therefore no object of the class has to be created to detect the type only.
In addition the member variable fType can be const.
Change-Id: Ib9c484964a93d4f25ca0a354d6852c03a7b33896
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
If a message was only written partly this has not to be interpreted as a
fatal error.
With this change it tries to continue reading/writing as long as there
are bytes read/written.
In addition errno is only valid in case of a return value of -1.
Therefore errno will only be read on a negative error value, now.
Change-Id: I4b46142c480e016b187bc606b248176eb23aefd8
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
This badge links to a chart that shows where jack2 is the package ecosystem. Apologies, I was unsuccessful formatting the .rst so the badges could be side-by-side.
jack_port_get_latency_range only returns meaningful values after ports get
connected, and that is signalled via the latency callback. Saying that it's
normally used in callbacks is too soft, the docs should make it clear that the
function is not very useful outside of the callback, because you don't know
whether the port is connected / whether the latency values changed.
Change-Id: I3d79e5f2516d8709b70dc700e5c9a04534619661
Signed-off-by: Adam Miartus <amiartus@de.adit-jv.com>
(cherry picked from commit 7a7d3b3524)
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>