12-24-2009 12:44 PM
Hi there,
I have a vi that calls 4 instances of one subvi. I've made that subvi and all its subvis reentrant. In a subvi is code that accesses a dll file. When I run the vi, the program will run fine for about 30 seconds. Then I get the Fatal Internal Error: "MessageManager" line 437.
When I go into the code and comment out the dll stuff, the program works fine, so I'm pretty sure that the problem is there. Is there something I need to do to make dll file use reentrant-friendly?
Thanks,
Jing
Solved! Go to Solution.
12-28-2009 02:57 PM
12-29-2009 03:42 AM
jinglebells wrote:Hi there,
I have a vi that calls 4 instances of one subvi. I've made that subvi and all its subvis reentrant. In a subvi is code that accesses a dll file. When I run the vi, the program will run fine for about 30 seconds. Then I get the Fatal Internal Error: "MessageManager" line 437.
When I go into the code and comment out the dll stuff, the program works fine, so I'm pretty sure that the problem is there. Is there something I need to do to make dll file use reentrant-friendly?
Thanks,
Jing
Sounds either like your DLL is messing up something (say bug here!) or is not multi-threading safe or something. Did you configure the Call Library Node to run in any thread already as Mike S kidly suggested. If you did and the error occurs, I would say your DLL has some serious multi-threading issues and is not able to cope with being called from different thread contexts or being called simultanously from more than one place. Setting the Call Library to Run in UI thread should remedy that, but will of course prevent reentrant calls to your DLL. But if it can't handle reentrant calls then you shouldn't try to call it that way.
01-04-2010 01:07 PM