Tim Uckun wrote:
The language is Crystal which is still a very young language. It does not have threading at this time so there should be no issues with mutexes. While writing the code I never opened up a database but did repeatedly open up the environment and if the app ran into an error while coding didn't properly close the environment.
I didn't ask about languages, I asked about OS and LMDB version.
LMDB uses mutexes internally to serialize write transactions.
Howard while I have you on the line....
The documentation says to be very careful about closing databases and says it's not normally necessary. I am going to omit those calls from my wrapper. Is this OK? I will probably omit a bunch of other calls too at least from the first release but I want to make sure I don't omit anything crucial.
Probably a good idea to omit dbi_close.
Thanks.
On Tue, Nov 22, 2016 at 7:42 AM, Howard Chu <hyc@symas.com mailto:hyc@symas.com> wrote:
Tim Uckun wrote: Hi All. I am writing a wrapper for Lmdb for the Crystal language. During the process of writing my code started hanging when attempting to open a transaction. At first I thought I was calling the C functions wrong but it turned out to be some sort of a corruption in the database itself. I deleted the database directory and the code started working fine again. Sounds like you're not using robust mutexes. Just a guess, since you didn't provide any info about your OS / platform or LMDB version. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/ <http://www.openldap.org/project/>