btlib tests die on armhf due to the deadlock: -------------------- (gdb) thread apply all bt Thread 4 (Thread 0xf6a5c800 (LWP 3970) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7cba47e in __futex_abstimed_wait_common32 (private=, cancel=, abstime=, op=, expected=, futex_word=) at futex-internal.c:40 #2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x423588, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:99 #3 0xf7cba55c in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x423588, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #4 0xf7cbc876 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x423540, cond=0x423560) at pthread_cond_wait.c:503 #5 ___pthread_cond_wait (cond=0x423560, mutex=0x423540) at pthread_cond_wait.c:627 #6 0x0040d542 in std::condition_variable::wait::write(btllib::OrderQueue::Block&)::{lambda()#1}>(std::unique_lock&, btllib::OrderQueueMPMC::write(btllib::OrderQueue::Block&)::{lambda()#1}) (__p=..., __lock=..., this=0x423560) at /usr/include/c++/12/condition_variable:102 #7 btllib::OrderQueueMPMC::write (this=0xfffef910, block=...) at ../include/btllib/order_queue.hpp:243 #8 0x0040b1c8 in operator() (__closure=) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/seq_reader.cpp:420 #9 0xf7ebde16 in ?? () from /lib/arm-linux-gnueabihf/libstdc++.so.6 #10 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_create.c:442 #11 0xf7d14140 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:74 from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?) Thread 3 (Thread 0xf745d800 (LWP 3969) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7cba47e in __futex_abstimed_wait_common32 (private=, cancel=, abstime=, op=, expected=, futex_word=) at futex-internal.c:40 #2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:99 #3 0xf7cba55c in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #4 0xf7cbc876 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4234d0, cond=0x4234f0) at pthread_cond_wait.c:503 #5 ___pthread_cond_wait (cond=0x4234f0, mutex=0x4234d0) at pthread_cond_wait.c:627 #6 0x0040d542 in std::condition_variable::wait::write(btllib::OrderQueue::Block&)::{lambda()#1}>(std::unique_lock&, btllib::OrderQueueMPMC::write(btllib::OrderQueue::Block&)::{lambda()#1}) (__p=..., __lock=..., this=0x4234f0) at /usr/include/c++/12/condition_variable:102 #7 btllib::OrderQueueMPMC::write (this=0xfffef910, block=...) at ../include/btllib/order_queue.hpp:243 #8 0x0040a886 in operator() (__closure=) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/seq_reader.cpp:424 #9 0xf7ebde16 in ?? () from /lib/arm-linux-gnueabihf/libstdc++.so.6 #10 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_create.c:442 #11 0xf7d14140 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:74 from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?) Thread 2 (Thread 0xf7c5e800 (LWP 3960) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7d05c10 in __GI___libc_read (nbytes=1, buf=0xf7c5e1a3, fd=7) at ../sysdeps/unix/sysv/linux/read.c:26 #2 __GI___libc_read (fd=7, buf=buf@entry=0xf7c5e1a3, nbytes=nbytes@entry=1) at ../sysdeps/unix/sysv/linux/read.c:24 #3 0x0040fea8 in read (__nbytes=1, __buf=0xf7c5e1a3, __fd=) at /usr/include/arm-linux-gnueabihf/bits/unistd.h:38 #4 operator() (__closure=) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/process_pipeline.cpp:731 #5 std::__invoke_impl > (__f=...) at /usr/include/c++/12/bits/invoke.h:61 #6 std::__invoke > (__fn=...) at /usr/include/c++/12/bits/invoke.h:96 #7 std::thread::_Invoker > >::_M_invoke<0> (this=) at /usr/include/c++/12/bits/std_thread.h:252 #8 std::thread::_Invoker > >::operator() (this=) at /usr/include/c++/12/bits/std_thread.h:259 #9 std::thread::_State_impl > > >::_M_run(void) (this=) at /usr/include/c++/12/bits/std_thread.h:210 #10 0xf7ebde16 in ?? () from /lib/arm-linux-gnueabihf/libstdc++.so.6 #11 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_create.c:442 #12 0xf7d14140 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:74 from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?) Thread 1 (Thread 0xf7fe4020 (LWP 3957) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7cba47e in __futex_abstimed_wait_common32 (private=, cancel=, abstime=, op=, expected=, futex_word=) at futex-internal.c:40 #2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:99 #3 0xf7cba55c in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #4 0xf7cbc876 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4234d0, cond=0x4234f0) at pthread_cond_wait.c:503 #5 ___pthread_cond_wait (cond=0x4234f0, mutex=0x4234d0) at pthread_cond_wait.c:627 #6 0x0040d6b0 in std::condition_variable::wait::read(btllib::OrderQueue::Block&)::{lambda()#1}>(std::unique_lock&, btllib::OrderQueueMPMC::read(btllib::OrderQueue::Block&)::{lambda()#1}) (__p=..., __lock=..., this=0x4234f0) at /usr/include/c++/12/condition_variable:102 #7 btllib::OrderQueueMPMC::read (this=this@entry=0xfffef910, block=...) at ../include/btllib/order_queue.hpp:243 #8 0x0040cf88 in btllib::SeqReader::read (this=this@entry=0xfffef818) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/seq_reader.cpp:445 #9 0x00402c7a in btllib::SeqReader::RecordIterator::operator++ (this=0xfffef748) at ../include/btllib/seq_reader.hpp:130 #10 btllib::SeqReader::RecordIterator::RecordIterator (end=false, reader=..., this=0xfffef748) at ../include/btllib/seq_reader.hpp:151 #11 btllib::SeqReader::begin (this=0xfffef818) at ../include/btllib/seq_reader.hpp:160 --Type for more, q to quit, c to continue without paging-- #12 main () at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/tests/seq_reader_fasta_module.cpp:25 --------------------