iodine 0.6.1 → 0.6.2
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.
Potentially problematic release.
This version of iodine might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/ext/iodine/iodine_store.c +2 -1
- data/ext/iodine/pubsub.c +3 -0
- data/lib/iodine/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18f2abd143126a74b278a1d082c1d177d383d0de0eec4252e3c78e94e862c9d1
|
4
|
+
data.tar.gz: 046fdb7171a8382d3376802514606c42dbd29f73ac6fbb224b2d87a52247dd3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00f6ac2019eb8a83579841e30aae3b8ab65fc1af0872542fa4f94c19feea16426d8f8de30e534ea88c06770a5abe9f2e73ccb244cb5cb2abf543efee55abf2f3
|
7
|
+
data.tar.gz: f494e6437a123bfef773214e6ff4a61da9ded0ea396209610d05c8d8e00d437cd17fcca1822e47bf8df3d937b2b7c4fddc6b75f4d149f77837a9c4f4d3e5a9ee
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,10 @@ Please notice that this change log contains changes for upcoming releases as wel
|
|
6
6
|
|
7
7
|
## Changes:
|
8
8
|
|
9
|
+
#### Change log v.0.6.2
|
10
|
+
|
11
|
+
**Fix**: (`Iodine::PubSub`) fixed an issue where lazy initialization would cause the shutdown process to crash if no Pub/Sub engines were ever registered (fixes an attempt to seek within an uninitialized data structure). Credit to @sj26 (Samuel Cochran) for reporting the issue.
|
12
|
+
|
9
13
|
#### Change log v.0.6.1
|
10
14
|
|
11
15
|
**Fix**: (`Iodine::PubSub`) fixed typo, `Iodine::PubSub.detach` is now correctly spelled.
|
data/ext/iodine/iodine_store.c
CHANGED
@@ -29,7 +29,8 @@ static VALUE storage_add(VALUE obj) {
|
|
29
29
|
}
|
30
30
|
/** Removes an object from the storage (or decreases it's reference count). */
|
31
31
|
static VALUE storage_remove(VALUE obj) {
|
32
|
-
if (obj == Qnil || obj == Qtrue || obj == Qfalse || storage.map == NULL
|
32
|
+
if (obj == Qnil || obj == Qtrue || obj == Qfalse || storage.map == NULL ||
|
33
|
+
storage.count == 0)
|
33
34
|
return obj;
|
34
35
|
spn_lock(&lock);
|
35
36
|
uintptr_t val = (uintptr_t)fio_hash_insert(&storage, obj, NULL);
|
data/ext/iodine/pubsub.c
CHANGED
@@ -438,6 +438,9 @@ void pubsub_engine_register(pubsub_engine_s *engine) {
|
|
438
438
|
|
439
439
|
/** Unregisters an engine, so it could be safely destroyed. */
|
440
440
|
void pubsub_engine_deregister(pubsub_engine_s *engine) {
|
441
|
+
if (engines.map == NULL) {
|
442
|
+
return;
|
443
|
+
}
|
441
444
|
spn_lock(&engn_lock);
|
442
445
|
if (PUBSUB_DEFAULT_ENGINE == engine)
|
443
446
|
PUBSUB_DEFAULT_ENGINE = (pubsub_engine_s *)PUBSUB_CLUSTER_ENGINE;
|
data/lib/iodine/version.rb
CHANGED