On 6/8/06, IOhannes m zmoelnig zmoelnig@iem.at wrote:
chris clepper wrote:
On 6/7/06, *chris clepper* <cgclepper@gmail.com mailto:cgclepper@gmail.com> wrote:
Finally, after setting up one shm buffer at an address I can no
longer
create one at any other address. I get this message: pix_share_*: 2048x768x2: 3145728 error: pix_share_*: couldn't get shm_id: error 12
pix_share_write might not be releasing the shm object correctly or at all.
you are right. in the process of detecting how big an already segment is attached a memory segment and did not properly release it anymore.
i have checked in a fix for this.
actually it is just an "shmdt(h);" below the "m_size=h->size;" below the "somebody was faster" warning.
Thanks. I'll give it a test in a bit.
I could only get one set up for a ~2.5MB buffer without rebooting
to free up more. OSX might have changed the shmmax defaults to 4MB total in a recent update as well. I put it to 8MB and can now use a 1024x768x4 buffer after a fresh reboot although changing it to one double that size using the set message fails.
note that you can only resize the buffer to something larger if nothing refers to this segment any more.
Ok, I might have missed that in my testing by keeping a pix_share_read open in another instance of Pd or I could have not removed the object properly (sometimes I just crtl-c or kill Pd).
Would it be possible to have message that said something like 'Cannot resize buffer because it is in use by another pix_share_ object'?
cgc