Solved!
This was a pretty "interesting" bug. Remember when I invented a way to implement #async / #await in #C, for jobs running on a threadpool. Back then I said it only works when completion of the task resumes execution on the *same* pool thread.
Trying to improve overall performance, I found the complex logic to identify the thread job to put on a pool thread a real deal-breaker. Just having one single MPMC queue with a single semaphore for all pool threads to wait on is a lot more efficient. But then, a job continued after an awaited task will resume on a "random" thread.
It theoretically works by making sure to restore the CORRECT context (the original one of the pool thread) every time after executing a job, whether partially (up to the next await) or completely.
Only it didn't, at least here on #FreeBSD, and I finally understood the reason for this was that I was using #TLS (thread-local storage) to find the context to restore.
Well, most architectures store a pointer to the current thread metadata in a register. #POSIX user #context #switching saves and restores registers. I found a source claiming that the #Linux (#glibc) implementation explicitly does NOT include the register holding a thread pointer. Obviously, #FreeBSD's implementation DOES include it. POSIX doesn't have to say anything about that.
In short, avoiding TLS accesses when running with a custom context solved the crash.
One thing I notice when reading about people's problems #switching to #linuxaudio is that their attempts/workflows often seem quite complex.
To avoid setbacks and frustration, my suggestion would be to start simple and accept limitations in the beginning, get to know the system better, and then aim for more complex setups as your know-how grows.
New Phone Museum coming to the Denver area. Volunteer search for people who want to help maintain old telecom switching equipment.
@vetgaming @linuxmint actually, @fuchsiii does some clever #Wine #Version #Switching to workaround game-specific compatibility issues instead!
#Switching
from the bird to #BlueSky.
My main question is; WHY NOW ?
The main reason would have been at least two years ago, when Elon 'stepped in'.
Having been brainwashed by right wing propaganda...
NOW you've had enough so you switch to another hedge fund backed new platform? [meaning that at some point they want to see money]
I really don't get it.
Erasing EEPROMs isn’t Always as Easy as it Seems - When is 14 volts not actually 14 volts? Given [Anders Nielsen]’s recent struggles ... - https://hackaday.com/2024/01/20/erasing-eeproms-isnt-always-as-easy-as-it-seems/ #retrocomputing #switching #27c512 #2n3904 #2n3906 #eeprom #parts #retro #bjt
Building a Better Keyboard and Mouse Switch - Switching inputs between desktops seems like something that should be simple but c... - https://hackaday.com/2023/12/26/building-a-better-keyboard-and-mouse-switch/ #peripheralshacks #cablemanagement #raspberrypipico #computerhacks #raspberrypi #switching #network #rp2040 #kvm
Switching Converter for EEPROM Programmer Taxes Solderless Breadboard - We all know that solderless breadboards have their limitations. All that stray cap... - https://hackaday.com/2023/12/08/switching-converter-for-eeprom-programmer-taxes-solderless-breadboard/ #boostconverter #programming #breadboard #solderless #switching #burner #eeprom #parts #rom
RF Remote Made Easy - The 433 MHz spectrum is a little bit of an oddball. It’s one of the few areas of t... - https://hackaday.com/2023/07/31/rf-remote-made-easy/ #remotecontrol #fourchannel #radiohacks #switching #arduino #atmega8 #433mhz #radio
Tiny Microcontroller Uses Real-Time Operating System - Most of the computers we interact with on a day-to-day basis use an operating syst... - https://hackaday.com/2023/05/10/tiny-microcontroller-uses-real-time-operating/ #realtimeoperatingsystem #smokedetector #temperature #automation #homehacks #switching #esp32 #home #rtos
Guess I've been on here long enough to do an #introduction I'm Chris, and I live in #Bermuda
I'm married with two kids, a son and a daughter.
My hobbies include #mountainbiking #gaming (including #TTRPG #DnD and #MagicTheGathering) and #spearfishing.
I work currently as an #IaaS Support Engineer at a #cloud and #datacentre provider. I do everything from setting up virtual environments, and orchestration through #SaltStack to #DevOps and managing our #Networking and #Switching platform.