iodine 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of iodine might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3223346c9846721cd2c6c5ef4c49e6abd9e43b28921ba1413d0b8c09c7372375
4
- data.tar.gz: 20fde29985c40d22743f77eae4ad5a981e8f3e033798539436e54995ee9fade5
3
+ metadata.gz: 18f2abd143126a74b278a1d082c1d177d383d0de0eec4252e3c78e94e862c9d1
4
+ data.tar.gz: 046fdb7171a8382d3376802514606c42dbd29f73ac6fbb224b2d87a52247dd3e
5
5
  SHA512:
6
- metadata.gz: b76b9b6abbf1df98c1bcb02df5efb5e138f8f529391f9d566a42f270ea99c7915d44c12096b663b008f8f62892ef6b58f2d4a138c67b39cf12b71e2c65047c6f
7
- data.tar.gz: a1ab694050056c0bc848c17b121d0b239a0845137ed70b918a2ca4bc067d6f8c956a5430466205299e6122520fce677380c662eb7f72de5b5cf626bcb78584d4
6
+ metadata.gz: 00f6ac2019eb8a83579841e30aae3b8ab65fc1af0872542fa4f94c19feea16426d8f8de30e534ea88c06770a5abe9f2e73ccb244cb5cb2abf543efee55abf2f3
7
+ data.tar.gz: f494e6437a123bfef773214e6ff4a61da9ded0ea396209610d05c8d8e00d437cd17fcca1822e47bf8df3d937b2b7c4fddc6b75f4d149f77837a9c4f4d3e5a9ee
@@ -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.
@@ -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);
@@ -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;
@@ -1,3 +1,3 @@
1
1
  module Iodine
2
- VERSION = '0.6.1'.freeze
2
+ VERSION = '0.6.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iodine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boaz Segev