Hi Everyone,
So I am writing a very basic database in C++ and I am accessing the data from a web browser. I am using the opensource Mongoose web server code....
I have an issue...
The way the DB works is this:
on starting, the DB loads a json file of all of the data into it. I have a class called DatabaseLoader that does this - it is the class that gets rewritten depending on the data structure of the json.
This is passed to vectors (vector<Node*> and vector<Edge*>) as references from Graph object.
Once the DatabaseLoader has finished it can be destroyed and any memory allocated objects it created (except the ones in those two vectors).
From then on, the Graph object is in charge of all of the elements in the database that are stored in the two vectors.
When the user browses to htpp://127.0.0.1:8000 they see the json representing each object in the vectors.
All good so far....
However, when I repeatedly hit refresh in my browser (and call me insane...) at quite a fast speed I get this error:
Code:
main(29855,0x7fff76763310) malloc: *** error for object 0x7f98b2829408: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
[1] 29855 abort ./main testing.json
It seems to me this would be if I tried to "delete" and object twice, or if one of my objects was overwriting memory somewhere. However I am not recreating anything, I am just looping over the vectors and printing out the content.
When I refresh slowly, I dont see this happen - i did it quite a lot of times, but when I do it fast I think it is happening.
So is there any possibility of me hitting the c++ web server to quickly and it is trying to process the data twice, causing some sort of memory error - i.e do I need to implement threading or something??
I can paste code, but there is quite a lot now....
Thanks