Extraneous threads left around
I'm seeing this in GNOME Shell, but particularly there appear to be a lot of threads left around from what appears to be a thread pool for various rendering bits.
I have dozens of threads in blocked state like:
Thread 38 (Thread 0x7f15479fc640 (LWP 1062970)):
#0 0x00007f15f50cebe9 in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1 0x00007f15f50d1371 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2 0x00007f15c8a9727f in rayon_core::sleep::Sleep::sleep () at /lib64/librsvg-2.so.2
#3 0x00007f15c8a97034 in rayon_core::registry::WorkerThread::wait_until_cold () at /lib64/librsvg-2.so.2
#4 0x00007f15c8c6e5b3 in rayon_core::registry::ThreadBuilder::run () at /lib64/librsvg-2.so.2
#5 0x00007f15c8c70fe1 in std::sys_common::backtrace::__rust_begin_short_backtrace () at /lib64/librsvg-2.so.2
#6 0x00007f15c8c74e4b in core::ops::function::FnOnce::call_once{{vtable.shim}} () at /lib64/librsvg-2.so.2
#7 0x00007f15c8ff0c83 in std::sys::unix::thread::Thread::new::thread_start () at /lib64/librsvg-2.so.2
#8 0x00007f15f50d2017 in start_thread () at /lib64/libc.so.6
#9 0x00007f15f51576d0 in clone3 () at /lib64/libc.so.6
This is a 12-core+HT machine, so presumably the threadpool size is related to that. However, I don't think we need an unbound or CPU-thread-count-bound threadpool for rendering SVGs?
Perhaps this is a shell bug that doesn't clean up some internal rsvg state or something?