Hi. I'm trying to expose a "framebuffer API" via a C interface in a shared library. The idea is to have something like the following scenario: 1. Call "init" to initialize a sharable mutex and a shared memory segment for the framebuffer. 2. A process that wants to read the framebuffer would obtain a shared lock by calling ruauv_camReadLock() and get a handle on the mutex back (as a void*). 3. After doing what it needs to the framebuffer (which usually means copying it) it would call ruauv_camReadUnlock(void*) and send in the handle it got from step 2. I've implemented this and a test application that simply loops and does this repeatedly but the problem I have is that after exactly 65501 iterations I get an error stating: terminate called after throwing an instance of 'boost::interprocess::interprocess_exception' what(): Cannot allocate memory Here is a link to the relevant code that I'm using: http://pastebin.com/4ERTWEzj If it's of any relevance, I'm creating a shared library from the code above the main() in this snippet and then I'm compiling the main() into an executable and linking with the library. As I say, the for loop is able to iterate 65501 times and then fails the next time (the failure occurs at line 33 in the snippet above). I would really appreciate any help. -- Kær kveðja | With best regards Stefán Freyr Stefánsson Tölvunarfræðideild | School of Computer Science Sérfræðingur | Specialist Beint/Direct +354 599 6534 | GSM/Mobile +354 822 1667 Háskólinn í Reykjavík | Reykjavik University stefan@ru.is Menntavegur 1, Nauthólsvík | 101 Reykjavík | Iceland Sími/Tel +354 599 6200 | Fax + 354 599 6201 www.ru.is