Do you have a smaller test case? I couldn't reproduce the error after
I pulled out the MacOS stuff.
No, I don't have a smaller test case yet. I'm trying to reproduce the same environment as the CoreAudio IO proc using a real-time scheduled pthread. Which is what I understand CoreAudio is doing. I'm starting to think the problem could be:
- Interference with the alarm signal haskell uses to schedule. There is a bug filed in GHC's trac system, so I presume it's still true, but I haven't located the code in GHC that sets this up.
- The haskell code is too slow. If a coreaudio IO proc takes too long the system will still call the callback but essentially silence all output. Which is what is consistent with what I observed, but doesn't explain why code after the poke* call is not occuring.
--