|
From: | JCK |
Subject: | Atom table full |
Date: | Wed, 16 Apr 2008 07:49:44 -0400 |
Hi all,I'm getting an "Atom table full" error. Admittedly, I do not know much about the atom table, I didn't even know there was one until I found out mine was full. I read a post in the archives concerning this which stated that: it was planned in the future to have an atom table without limitations (which I don't think has been done since I'm getting this message); and the only way to change the limit was to modify the code and recompile.
The thing is I'm quite sure I don't need that many atoms, the portion of my code that seems to be the culprit is a loop which reads in data (from mysql), processes the data and writes data back (to mysql). I was running into problems with stack size, so instead of looping recursively, I used a 'repeat' which seemed to have improved my stack issues but then I got "Atom Table Full'. I think it's just looping so many times that any number of atoms that get created and not destroyed will eventually fill the table. I even exit the 'repeat' loop every X number of loops (in hopes of cleaning thing up), and then re-enter the 'repeat' loop.
I have no need for backtracking during this portion of the code and have no need for the data after a loop is completed (it's in mysql). So I guess my question is:
(1) is there anyway of clearing the atoms that won't be used again from table? (2) there's nowhere in the loop where a huge number of atoms are created. The only place I can think of there being atoms created is after SQL calls when I'm converting and putting the data into prolog variables. Is there anyone else who's had this problem found a culprit which is known for creating lots of atoms?
(3) Any suggestions are welcome. Thanks in advance, JK
[Prev in Thread] | Current Thread | [Next in Thread] |