On Sun, 2007-08-19 at 11:09 -0700, Miller Puckette wrote:
Resizing large memory objects in a real-time thread can block as the OS pages other memory out to disk... so the operation is never safe unless done in a separate thread.
what's the problem with using a separate thread for non-realtime operations?
This would be a major change, and would move in the direction of making Pd harder to maintain in the long term.
if the overall architecture is powerful enough, this shouldn't really be a problem ... the threaded buffer resizing of nova is less than 40 lines of code :)
Fixing the tabread~ object to do a double dereference would fix the problem in 99% of cases... which is just the wrong thing to do if you want to be able to use software on stage :)
aehm ... i'm curious about the other 1% ... from my understanding, the current hierarchy (object->memory) would just be extended to (object->buffer->memory), this indirection should give you another level of abstraction, that can easily be used for error handling ... if i'm missing something here, please let me know, as the whole buffer concept of nova is based on this indirection ...
tim
-- tim@klingt.org ICQ: 96771783 http://tim.klingt.org
After one look at this planet any visitor from outer space would say "I want to see the manager." William S. Burroughs