rocksdb-native 3.7.4 → 3.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +39 -23
- package/package.json +1 -1
- package/prebuilds/android-arm/rocksdb-native.bare +0 -0
- package/prebuilds/android-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/android-ia32/rocksdb-native.bare +0 -0
- package/prebuilds/android-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
- package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
- package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
- package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-x64/rocksdb-native.node +0 -0
- package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
- package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-x64/rocksdb-native.node +0 -0
package/binding.cc
CHANGED
|
@@ -94,7 +94,7 @@ struct rocksdb_native_iterator_t {
|
|
|
94
94
|
js_persistent_t<cb_on_iterator_close_t> on_close;
|
|
95
95
|
js_persistent_t<cb_on_iterator_read_t> on_read;
|
|
96
96
|
|
|
97
|
-
bool
|
|
97
|
+
bool active;
|
|
98
98
|
bool exiting;
|
|
99
99
|
|
|
100
100
|
js_deferred_teardown_t *teardown;
|
|
@@ -717,7 +717,7 @@ rocksdb_native_iterator_init(js_env_t *env) {
|
|
|
717
717
|
assert(err == 0);
|
|
718
718
|
|
|
719
719
|
req->env = env;
|
|
720
|
-
req->
|
|
720
|
+
req->active = false;
|
|
721
721
|
req->exiting = false;
|
|
722
722
|
req->handle.data = req;
|
|
723
723
|
|
|
@@ -757,6 +757,8 @@ rocksdb_native__on_iterator_close(rocksdb_iterator_t *handle, int status) {
|
|
|
757
757
|
|
|
758
758
|
rocksdb_native_iterator_t *req = (rocksdb_native_iterator_t *) handle->data;
|
|
759
759
|
|
|
760
|
+
req->active = false;
|
|
761
|
+
|
|
760
762
|
js_env_t *env = req->env;
|
|
761
763
|
|
|
762
764
|
js_deferred_teardown_t *teardown = req->teardown;
|
|
@@ -809,33 +811,38 @@ rocksdb_native__on_iterator_open(rocksdb_iterator_t *handle, int status) {
|
|
|
809
811
|
|
|
810
812
|
rocksdb_native_iterator_t *req = (rocksdb_native_iterator_t *) handle->data;
|
|
811
813
|
|
|
812
|
-
|
|
814
|
+
req->active = false;
|
|
813
815
|
|
|
814
|
-
|
|
816
|
+
if (req->exiting) {
|
|
817
|
+
err = rocksdb_iterator_close(&req->handle, rocksdb_native__on_iterator_close);
|
|
818
|
+
assert(err == 0);
|
|
819
|
+
} else {
|
|
820
|
+
js_env_t *env = req->env;
|
|
815
821
|
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
822
|
+
js_handle_scope_t *scope;
|
|
823
|
+
err = js_open_handle_scope(env, &scope);
|
|
824
|
+
assert(err == 0);
|
|
819
825
|
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
826
|
+
js_receiver_t ctx;
|
|
827
|
+
err = js_get_reference_value(env, req->ctx, ctx);
|
|
828
|
+
assert(err == 0);
|
|
823
829
|
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
830
|
+
cb_on_iterator_open_t cb;
|
|
831
|
+
err = js_get_reference_value(env, req->on_open, cb);
|
|
832
|
+
assert(err == 0);
|
|
827
833
|
|
|
828
|
-
|
|
834
|
+
std::optional<js_string_t> error;
|
|
829
835
|
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
836
|
+
if (req->handle.error) {
|
|
837
|
+
err = js_create_string(env, req->handle.error, error.emplace());
|
|
838
|
+
assert(err == 0);
|
|
839
|
+
}
|
|
834
840
|
|
|
835
|
-
|
|
841
|
+
js_call_function_with_checkpoint(env, cb, ctx, error);
|
|
836
842
|
|
|
837
|
-
|
|
838
|
-
|
|
843
|
+
err = js_close_handle_scope(env, scope);
|
|
844
|
+
assert(err == 0);
|
|
845
|
+
}
|
|
839
846
|
}
|
|
840
847
|
|
|
841
848
|
static void
|
|
@@ -846,7 +853,7 @@ rocksdb_native__on_iterator_teardown(js_deferred_teardown_t *handle, void *data)
|
|
|
846
853
|
|
|
847
854
|
req->exiting = true;
|
|
848
855
|
|
|
849
|
-
if (req->
|
|
856
|
+
if (req->active) return;
|
|
850
857
|
|
|
851
858
|
err = rocksdb_iterator_close(&req->handle, rocksdb_native__on_iterator_close);
|
|
852
859
|
assert(err == 0);
|
|
@@ -872,6 +879,8 @@ rocksdb_native_iterator_open(
|
|
|
872
879
|
) {
|
|
873
880
|
int err;
|
|
874
881
|
|
|
882
|
+
req->active = true;
|
|
883
|
+
|
|
875
884
|
rocksdb_range_t range;
|
|
876
885
|
|
|
877
886
|
err = js_get_typedarray_info(env, gt, range.gt.data, range.gt.len);
|
|
@@ -920,7 +929,7 @@ static void
|
|
|
920
929
|
rocksdb_native_iterator_close(js_env_t *env, js_arraybuffer_span_of_t<rocksdb_native_iterator_t, 1> req) {
|
|
921
930
|
int err;
|
|
922
931
|
|
|
923
|
-
req->
|
|
932
|
+
req->active = true;
|
|
924
933
|
|
|
925
934
|
err = rocksdb_iterator_close(&req->handle, rocksdb_native__on_iterator_close);
|
|
926
935
|
assert(err == 0);
|
|
@@ -944,6 +953,8 @@ rocksdb_native__on_iterator_read(rocksdb_iterator_t *handle, int status) {
|
|
|
944
953
|
|
|
945
954
|
rocksdb_native_iterator_t *req = (rocksdb_native_iterator_t *) handle->data;
|
|
946
955
|
|
|
956
|
+
req->active = false;
|
|
957
|
+
|
|
947
958
|
rocksdb_native_t *db = (rocksdb_native_t *) req->handle.req.db;
|
|
948
959
|
|
|
949
960
|
size_t len = req->handle.len;
|
|
@@ -958,6 +969,9 @@ rocksdb_native__on_iterator_read(rocksdb_iterator_t *handle, int status) {
|
|
|
958
969
|
rocksdb_slice_destroy(&req->values[i]);
|
|
959
970
|
}
|
|
960
971
|
}
|
|
972
|
+
|
|
973
|
+
err = rocksdb_iterator_close(&req->handle, rocksdb_native__on_iterator_close);
|
|
974
|
+
assert(err == 0);
|
|
961
975
|
} else {
|
|
962
976
|
js_env_t *env = req->env;
|
|
963
977
|
|
|
@@ -1019,6 +1033,8 @@ rocksdb_native_iterator_read(
|
|
|
1019
1033
|
) {
|
|
1020
1034
|
int err;
|
|
1021
1035
|
|
|
1036
|
+
req->active = true;
|
|
1037
|
+
|
|
1022
1038
|
err = rocksdb_iterator_read(&req->handle, req->keys, req->values, capacity, rocksdb_native__on_iterator_read);
|
|
1023
1039
|
assert(err == 0);
|
|
1024
1040
|
}
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|