Xruns occur when coll tries to read/write large files, particularly when Pd is running more complex patches. Following proposed solution does read/write in a separate thread to avoid generating xruns and outputs bang on load using clock_delay to make it sync properly with the main thread.
Anonymous
cleaned-up patch using diff -u against externals/miXed/cyclone/hammer/coll.c found in pd-extended 0.42.5
Fixed and re-uploaded the patch after discovering some stability issues.
Hey Ico, glad to see you putting work into hard problems.
cyclone is a complex library with a very specific goal: a collection of clones of Max/MSP objects, bugs, warts and all. I recommend that you just make your own version of [coll] and give it a new name to avoid confusion, unless you really share this goal and are willing to test against Max/MSP.
FWIW, in Max/MSP loading large coll files (or any files for that matter) does not cause any xruns while in Pd it does. Now, I am not sure if this is due to deeper architectural difference between Pd and Max code base but as it is right now coll is unusable in a good number of scenarios and it does not behave like the counterpart it tries to emulate. This bugfix solves that. Likewise, a collection of fixes to the cyclone I submitted more recently deals with the cyclone file editor that coll also uses and makes it also more user friendly (e.g. you can save the changes without closing the window) which is also how the original coll file behaves (AFAIK).
HTH
I don't know Max/MSP enough to say, so that's not a decision I'm going to make. If you want to work on cyclone as a Max/MSP clone library, then I think you should discuss it with the author, Krzysztof Czaja.
Cleaned up the patch. It appears to be working by moving the actual read and write operations to a separate thread. Will test some more before applying it to the code.