Re: Rob: More trouble with PD-source
- Posted by Vincent <darkvincentdude at yahoo.com> Nov 29, 2005
- 580 views
Robert Craig wrote: > > Elliott Sales de Andrade wrote: > > I can confirm that without the StatusProc, the example does work correctly. > > Speed is somewhat important in these cases since audio buffering is > > involved. > > The DSPTest, for example, is machine-staggeringly slow when run through the > > PD source. Still, it is able to run without crashing, albeit quite slowly. > > However, > > I do not think speed is as important in the StatusProc since it is meant for > > saving downloaded data. > > I just tried a little experiment with NetRadio.exw. > If I add a small delay: > for i = 1 to 1000 do > end for > before returning from the callback, exw runs NetRadio ok. > But if I increase the loop to 10,000 ... 100,000 ... 1,000,000 > then things become unstable, and eventually it crashes with > one of those weird errors. So there is a problem if the callback > takes too long, and maybe also if other processing takes too long. > I'm guessing the PD source (exw eu.ex) is too slow for certain > demanding operations. It doesn't crash when it's simply displaying > a GUI. It's when some data is being transferred at high-speed. > I think your BASS stuff is requiring a minimum level of speed. > It crashes with different random errors each time I click a button in NetRadio.exw, with EXW and trace(3). Can you do anything about this? > > It may well be that Eu's lack of thread-safety is the cause of this problem. > > However, I do not know why it would still work with the official > > interpreter. > > The errors are quite random. Sometimes, only half an error message is > > printed, > > without the actual error showing up, even in the ex.err file. This is > > sometimes > > a sign of the problem with thread-safety, but I cannot confirm it. > > If you run multiple threads in a non-thread-safe environment, > corruption can happen. For example, if two threads are > allocating space from the same heap at the same time, the > heap could get corrupted and all hell could break loose, > causing the interpreter to behave in a totally insane way. > Elliott could probably use TDLL in these cases. A Linux and BSD port of this library would be nice. > Regards, > Rob Craig > Rapid Deployment Software > <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a> Regards, Vincent