09-28-2005 07:47 AM
09-28-2005 10:20 AM
09-29-2005 08:02 AM
Ben, thanks for the help, I can attach the VI which caused the crash, it is not a complete program, just the offending function. When this function was marked reentrant it caused a crash in the labview 7.0 development environment. I also marked it for garbage collection (could this be a problem?) since this vi is called in a loop and each copy requires a modest amount of memory allocation. The function takes an input array on the order of Nxd and another vector of size d, where N is usually 10^3-10^5 and returns a 2d array of size Nxd. This function is called 1000's of times as fast as possible. Essentially what is is doing is finding how well a point in d-dimensional space fits in a set of predefined points in a set (it is a parzen kernel). I think this is the function killing my system. When I either compiled the system or removed the reentrant flag setting the system no longer crashed. The system is complex with 4 concurrent threads in a producer consumer pattern if this could cause the problem. When profiling the system with the task manager there was no noticeable increase in thread counts, handles or memory allocation, so I don't think it is a leak. Is there a maximum number of copies of a reentrant vi calls in labview or any other known bugs. I have never had a problem like this before, but I also rarely make my vi reentrant.
Paul
09-29-2005 08:26 AM
Hi paul
I just made a simple vi, which calls yours. I fed in the arrays (1 x 1000 and 1000 x 10000) and had no problems. When I tried to resize the 2d array to 1000x100000 I got an out of memory message, but LV did not crash.
I also use LV 7.0 on Win XP.
Thomas