Commit graph

128 commits

Author SHA1 Message Date
hofmockel
43a6997362 Fix deadlock on shutdown by releasing the GIL during del
On delete rocksdb waits for the background thread to finish.
However the background threads needs the GIL to execute python-code
(for example comparator)
=>
* main thread has GIL
* main thread waits for background thread
* background thread tries to get GIL
which means deadlock
2014-01-24 17:03:14 +01:00
hofmockel
c8b92d5adb Fore future use, prevent options beeing shared with other DB objects
For better logging I'm going to inject the rocksdb info_logger into the C++ Wrapper classes
=> The classes on the options object have a member to a DB specific logger
=> This c++ classes can only belong to a SINGLE db
=> For simplicity make this requirement also for the options object itself
2014-01-23 08:53:14 +01:00
hofmockel
a4c93f7144 __dealloc__ is also called if __cinit__ raises, be more robust in freeing 2014-01-23 08:34:26 +01:00
hofmockel
6ad545cea0 Fix possible crash if snapshot and DB take part in cyclic gargabe collection
The cyclic garbage collector may choose this snappshot object to break the
cycle. In that case tp_clear will remove the reference to self.db.
So if __dealloc__ of the snapshot is called, self.db is not valid anymore
2014-01-23 08:10:51 +01:00
hofmockel
bb31b34613 Depend on cython 0.20 to use the @cython.no_gc_clear decorator 2014-01-23 08:06:14 +01:00
hofmockel
a1cb7f9efc Raise error if offset+size is too big 2014-01-21 17:34:01 +01:00
hofmockel
3afcb98657 Add doce for prefix_extractor 2014-01-21 17:28:38 +01:00
hofmockel
36eb7024d3 Make 'prefix_extractor' active 2014-01-21 17:26:30 +01:00
hofmockel
6f452968bc PySliceTransfrom to bridge python and c++ 2014-01-21 13:15:26 +01:00
hofmockel
40c87ae7ed C callbacks to C++ for wrapping SliceTransfrom 2014-01-21 13:15:26 +01:00
hofmockel
c7d192128b Call it.Prev() without the GIL 2014-01-19 13:45:02 +01:00
hofmockel
ccfa2b522e Iterator notifies errors via 'it.status()' 2014-01-19 13:41:49 +01:00
hofmockel
0d20a2564a Prevent crash if python code is executed in a rocksdb background thread 2014-01-19 12:35:36 +01:00
hofmockel
ecb6e26546 Release the GIL if calls into rocksdb are made 2014-01-18 12:24:49 +01:00
hofmockel
86e6aef6cb Tag all the C++ functions with nogil and except+ 2014-01-17 20:06:17 +01:00
hofmockel
828be96dba Update docu about the bytes and unicode 2014-01-17 07:43:51 +01:00
hofmockel
79e8f5da8c Use bytes for the internal representation of a WriteBatch 2014-01-17 07:39:33 +01:00
hofmockel
46298a8f93 Add a text about bytes and unicode in pyrocksdb 2014-01-16 22:02:46 +01:00
hofmockel
38f9c6b57f Fix import to support python3 2014-01-16 21:33:37 +01:00
hofmockel
7d61b63b79 Separate strictly between bytes/unicode
which makes py3 support possible
2014-01-16 21:32:00 +01:00
hofmockel
6277f9ab5c Support unicode objects for paths
Use sys.getfilesystemencoding() for encoding
2014-01-16 08:51:01 +01:00
hofmockel
b4fb12589d Fix refcount error and use cythons <bytes> to convert a python object to char* 2014-01-15 09:53:27 +01:00
hofmockel
29551902e7 Update the 'rocksdb' build instruction 2014-01-15 09:17:41 +01:00
hofmockel
c0027bdd52 Add makefile for docs
Easier to use than always calling 'sphinx-build ...'
2014-01-15 09:16:38 +01:00
hofmockel
21c06f83ca Add a .gitignore 2014-01-15 09:10:59 +01:00
hofmockel
f87ac5939f Add links to docu and how pip install from github works 2014-01-13 20:03:44 +01:00
hofmockel
77c384b6b0 Initial commit of the driver 2014-01-13 19:52:22 +01:00
stephan-hof
e85239c6b9 Initial commit 2014-01-13 10:42:31 -08:00