81 karma · joined October 2, 2010
meet.hn/city/fr-Paris
Socials:
- linkedin.com/in/thomas-thiriez-438625
---
I do my best to do it on the application side. It would be nice if Apple's CoreAudio did the same.
If you mean that it is difficult to identify the pages used, that is true, but I found a great way to do just that. I keep track of all the pages I mlock(), list all the remaining pages, and mprotect them to crash if I accidentally access memory that was not mlocked. That helped me identify a couple of pages I forgot, such as the one that contains the __stack_chk_guard
And regarding the code pages, for some reason I get a permission denied error if I try to mlock them. Not sure why.
There is no mlockall() on macOS, but if there was one, I could delegate the real-time audio handling code to a separate executable, and call mlockall(). I would be guaranteed all the pages used by the real-time thread would be mlocked.
And by the way if you are interested in the report I sent to Apple, you can find all the details with the sample code to reproduce the problem there:
https://twistedwave.com/AudioGlitches.zip
It contains a program where the only thing I do in the real-time callback is to count the glitches, and I made sure to mlock() the memory used by the glitch counting code. When the memory pressure increases, it glitches.
TwistedWave, is an audio editor for macOS, iOS and Online, and I have almost finished porting it to Windows. I would appreciate any help in testing the Windows version before I release it officially.
Contact: beta-testing@domain or thomas@domain
France/England swims are no longer permitted. When the French authorities permitted these they usually started from Cap Gris Nez.
http://www.yoctopuce.com/EN/products/usb-environmental-senso...
https://www.goodreads.com/book/show/56627.Stumbling_on_Happi...
If your read/write rate is not constant, such as in the non-optimized file copy and you display the rate mod 1024 in the first band, I expect to see seemingly random bars that would not show any meaningful information. What am I missing?
http://www.yoctopuce.com/EN/products/usb-environmental-senso...
I use one to automatically adjust the brightness of my Dell display.
After making an OS X and an iOS version of TwistedWave, I have now made an Online version that works in a web browser.
All the audio is stored and processed on the server.
There is a small flash module used to record audio, but I will be happy to get rid of it as soon as we have a browser with support for the AudioWorkerNode.
I have also made an API so you can integrate it with your own web site.
Storing an index in the iterator would not be a solution either. That would mean updating the index in all the existing iterators when you insert an object in the list.
> (* 4294967296 4294967296)
$1 = 0
My guess is that guile uses the native int type to store small numbers, and then switches to a bignums, backed by GNU MP when the native ints are too small. Maybe in that particular case, the check fails, and the computation overflows the native int.