celluloid 0.17.2 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +340 -75
  3. data/CONDUCT.md +13 -0
  4. data/CONTRIBUTING.md +39 -0
  5. data/LICENSE.txt +1 -1
  6. data/README.md +54 -150
  7. data/REFACTOR.md +1 -0
  8. data/architecture.md +120 -0
  9. data/examples/basic_usage.rb +1 -1
  10. data/examples/configurations.rb +78 -0
  11. data/examples/futures.rb +1 -1
  12. data/examples/ring.rb +5 -4
  13. data/examples/simple_pmap.rb +1 -1
  14. data/examples/stack.rb +2 -2
  15. data/examples/supervisors_and_registry.rb +82 -0
  16. data/examples/timers.rb +2 -2
  17. data/lib/celluloid.rb +78 -65
  18. data/lib/celluloid/actor.rb +27 -17
  19. data/lib/celluloid/actor/system.rb +13 -29
  20. data/lib/celluloid/autostart.rb +6 -1
  21. data/lib/celluloid/call/async.rb +2 -0
  22. data/lib/celluloid/call/sync.rb +10 -3
  23. data/lib/celluloid/calls.rb +13 -13
  24. data/lib/celluloid/cell.rb +5 -9
  25. data/lib/celluloid/condition.rb +3 -3
  26. data/lib/celluloid/core_ext.rb +0 -2
  27. data/lib/celluloid/debug.rb +3 -0
  28. data/lib/celluloid/exceptions.rb +2 -2
  29. data/lib/celluloid/future.rb +8 -10
  30. data/lib/celluloid/group.rb +16 -6
  31. data/lib/celluloid/group/pool.rb +1 -3
  32. data/lib/celluloid/group/spawner.rb +2 -6
  33. data/lib/celluloid/internals/call_chain.rb +15 -0
  34. data/lib/celluloid/internals/cpu_counter.rb +62 -0
  35. data/lib/celluloid/internals/handlers.rb +42 -0
  36. data/lib/celluloid/internals/links.rb +38 -0
  37. data/lib/celluloid/internals/logger.rb +104 -0
  38. data/lib/celluloid/internals/method.rb +34 -0
  39. data/lib/celluloid/internals/properties.rb +32 -0
  40. data/lib/celluloid/internals/receivers.rb +64 -0
  41. data/lib/celluloid/internals/registry.rb +102 -0
  42. data/lib/celluloid/internals/responses.rb +46 -0
  43. data/lib/celluloid/internals/signals.rb +24 -0
  44. data/lib/celluloid/internals/stack.rb +74 -0
  45. data/lib/celluloid/internals/stack/dump.rb +12 -0
  46. data/lib/celluloid/internals/stack/states.rb +72 -0
  47. data/lib/celluloid/internals/stack/summary.rb +12 -0
  48. data/lib/celluloid/internals/task_set.rb +51 -0
  49. data/lib/celluloid/internals/thread_handle.rb +52 -0
  50. data/lib/celluloid/internals/uuid.rb +40 -0
  51. data/lib/celluloid/logging/incident.rb +21 -0
  52. data/lib/celluloid/logging/incident_logger.rb +147 -0
  53. data/lib/celluloid/logging/incident_reporter.rb +49 -0
  54. data/lib/celluloid/logging/log_event.rb +20 -0
  55. data/lib/celluloid/logging/ring_buffer.rb +64 -0
  56. data/lib/celluloid/mailbox.rb +22 -9
  57. data/lib/celluloid/mailbox/evented.rb +13 -7
  58. data/lib/celluloid/notifications.rb +95 -0
  59. data/lib/celluloid/pool.rb +6 -0
  60. data/lib/celluloid/probe.rb +81 -0
  61. data/lib/celluloid/proxy/abstract.rb +38 -7
  62. data/lib/celluloid/proxy/actor.rb +0 -5
  63. data/lib/celluloid/proxy/async.rb +2 -18
  64. data/lib/celluloid/proxy/block.rb +2 -1
  65. data/lib/celluloid/proxy/cell.rb +1 -7
  66. data/lib/celluloid/proxy/future.rb +3 -21
  67. data/lib/celluloid/proxy/sync.rb +2 -20
  68. data/lib/celluloid/rspec.rb +22 -34
  69. data/lib/celluloid/supervision.rb +17 -0
  70. data/lib/celluloid/supervision/configuration.rb +169 -0
  71. data/lib/celluloid/supervision/configuration/injections.rb +8 -0
  72. data/lib/celluloid/supervision/configuration/instance.rb +113 -0
  73. data/lib/celluloid/supervision/constants.rb +123 -0
  74. data/lib/celluloid/supervision/container.rb +144 -0
  75. data/lib/celluloid/supervision/container/behavior.rb +89 -0
  76. data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
  77. data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
  78. data/lib/celluloid/supervision/container/injections.rb +8 -0
  79. data/lib/celluloid/supervision/container/instance.rb +116 -0
  80. data/lib/celluloid/supervision/container/pool.rb +210 -0
  81. data/lib/celluloid/supervision/service.rb +27 -0
  82. data/lib/celluloid/supervision/supervise.rb +34 -0
  83. data/lib/celluloid/supervision/validation.rb +40 -0
  84. data/lib/celluloid/supervision/version.rb +5 -0
  85. data/lib/celluloid/system_events.rb +10 -3
  86. data/lib/celluloid/task.rb +25 -12
  87. data/lib/celluloid/task/fibered.rb +6 -2
  88. data/lib/celluloid/task/threaded.rb +3 -3
  89. data/lib/celluloid/test.rb +5 -2
  90. data/lib/celluloid/thread.rb +0 -2
  91. data/lib/celluloid/version.rb +1 -1
  92. data/spec/celluloid/block_spec.rb +29 -32
  93. data/spec/celluloid/calls_spec.rb +5 -15
  94. data/spec/celluloid/future_spec.rb +7 -1
  95. data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
  96. data/spec/celluloid/internals/links_spec.rb +43 -0
  97. data/spec/celluloid/internals/properties_spec.rb +40 -0
  98. data/spec/celluloid/internals/registry_spec.rb +62 -0
  99. data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
  100. data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
  101. data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
  102. data/spec/celluloid/internals/uuid_spec.rb +9 -0
  103. data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
  104. data/spec/celluloid/mailbox/evented_spec.rb +21 -19
  105. data/spec/celluloid/misc/leak_spec.rb +3 -4
  106. data/spec/celluloid/notifications_spec.rb +140 -0
  107. data/spec/celluloid/probe_spec.rb +102 -0
  108. data/spec/celluloid/proxy_spec.rb +33 -0
  109. data/spec/celluloid/supervision/behavior_spec.rb +74 -0
  110. data/spec/celluloid/supervision/configuration_spec.rb +181 -0
  111. data/spec/celluloid/supervision/container_spec.rb +72 -0
  112. data/spec/celluloid/supervision/instance_spec.rb +13 -0
  113. data/spec/celluloid/supervision/root_spec.rb +28 -0
  114. data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
  115. data/spec/celluloid/task/fibered_spec.rb +1 -3
  116. data/spec/celluloid/task/threaded_spec.rb +1 -3
  117. data/spec/shared/actor_examples.rb +65 -29
  118. data/spec/shared/group_examples.rb +2 -2
  119. data/spec/shared/mailbox_examples.rb +1 -1
  120. data/spec/shared/stack_examples.rb +87 -0
  121. data/spec/shared/task_examples.rb +2 -3
  122. data/spec/spec_helper.rb +2 -4
  123. data/spec/support/configure_rspec.rb +3 -4
  124. data/spec/support/coverage.rb +2 -4
  125. data/spec/support/crash_checking.rb +2 -2
  126. data/spec/support/examples/actor_class.rb +3 -8
  127. data/spec/support/examples/call_class.rb +2 -2
  128. data/spec/support/examples/container_class.rb +35 -0
  129. data/spec/support/examples/evented_mailbox_class.rb +1 -2
  130. data/spec/support/examples/stack_classes.rb +58 -0
  131. data/spec/support/examples/stack_methods.rb +23 -0
  132. data/spec/support/examples/subordinate_class.rb +19 -0
  133. data/spec/support/logging.rb +3 -34
  134. data/spec/support/loose_threads.rb +3 -24
  135. data/spec/support/reset_class_variables.rb +5 -1
  136. data/spec/support/stubbing.rb +1 -1
  137. metadata +93 -291
  138. data/culture/CONDUCT.md +0 -28
  139. data/culture/Gemfile +0 -9
  140. data/culture/LICENSE.txt +0 -22
  141. data/culture/README.md +0 -22
  142. data/culture/Rakefile +0 -5
  143. data/culture/SYNC.md +0 -70
  144. data/culture/celluloid-culture.gemspec +0 -18
  145. data/culture/gems/README.md +0 -39
  146. data/culture/gems/dependencies.yml +0 -85
  147. data/culture/gems/loader.rb +0 -101
  148. data/culture/rubocop/README.md +0 -38
  149. data/culture/rubocop/lint.yml +0 -8
  150. data/culture/rubocop/metrics.yml +0 -15
  151. data/culture/rubocop/perf.yml +0 -0
  152. data/culture/rubocop/rubocop.yml +0 -5
  153. data/culture/rubocop/style.yml +0 -57
  154. data/culture/spec/gems_spec.rb +0 -2
  155. data/culture/spec/spec_helper.rb +0 -0
  156. data/culture/spec/sync_spec.rb +0 -2
  157. data/culture/sync.rb +0 -56
  158. data/culture/tasks/rspec.rake +0 -5
  159. data/culture/tasks/rubocop.rake +0 -2
  160. data/lib/celluloid/actor/manager.rb +0 -7
  161. data/lib/celluloid/backported.rb +0 -2
  162. data/lib/celluloid/current.rb +0 -2
  163. data/lib/celluloid/deprecate.rb +0 -21
  164. data/lib/celluloid/fiber.rb +0 -32
  165. data/lib/celluloid/managed.rb +0 -3
  166. data/lib/celluloid/notices.rb +0 -15
  167. data/spec/celluloid/actor/manager_spec.rb +0 -0
  168. data/spec/deprecate/actor_system_spec.rb +0 -72
  169. data/spec/deprecate/block_spec.rb +0 -52
  170. data/spec/deprecate/calls_spec.rb +0 -39
  171. data/spec/deprecate/evented_mailbox_spec.rb +0 -34
  172. data/spec/deprecate/future_spec.rb +0 -32
  173. data/spec/deprecate/internal_pool_spec.rb +0 -4
  174. data/spec/support/env.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7e4fef1274946e44231177bcac481a79c785e496
4
- data.tar.gz: ddabf286ed4d0ac58f7f58f6ae9f843fd5b82a62
2
+ SHA256:
3
+ metadata.gz: fede4c9c3907c29a0dc303e711077a7b3196fc2acaf3b099ee98b197076c3fdc
4
+ data.tar.gz: f8bd8ffc37cddd24000d66e56d1bafc03796e309101fa4b6f5e02ab5e11f9aac
5
5
  SHA512:
6
- metadata.gz: 8864299ee4256cc2fbe2f5cd32bd59f49f80033f6352a65ae76ac4381c9903835b563147d66ef19585d836e5a1bac92801269276dca003a093dc2c845c91c04d
7
- data.tar.gz: fc79f37cf47fd47111cf2304c977c64d0d1e1e37b5c07f9d863e4975f1dd901ab2f43692a0cb656a36c98a93d9811bcdbcf10edecb027444ced46f916b19685d
6
+ metadata.gz: dc813a35e9f74a49a0f875d290e41fe6445dfd7f6778b46bd3e19b741446c590e1b05be2bc697e6d8641548165baee2494a49960fa7e3782f71b50a13cb50ee1
7
+ data.tar.gz: 9a47f043d4929f833b05187c88a487351e4f26da10038b1045497ed3c7e0fdf980e4b5fe753d7cc4ae1f2db70d0d5fe5966520e2bdff5f08a558c62d82c12fee
data/CHANGES.md CHANGED
@@ -1,28 +1,223 @@
1
- 0.17.2 (2015-09-30)
2
- -----
1
+ ## 0.18.0 (2020-12-05)
2
+
3
+ [0.18.0]: https://github.com/celluloid/celluloid/compare/v0.17.3...v0.18.0
4
+
5
+ * [#804](https://github.com/celluloid/celluloid/pull/804)
6
+ Remove deprecation warnings
7
+
8
+ * [#802](https://github.com/celluloid/celluloid/pull/802)
9
+ Remove lattice link itself.
10
+
11
+ * [#797](https://github.com/celluloid/celluloid/pull/797)
12
+ Update Ruby versions in CI script
13
+
14
+ * [#801](https://github.com/celluloid/celluloid/pull/801)
15
+ Associate Open Collective sponsorship option
16
+
17
+ * [#800](https://github.com/celluloid/celluloid/pull/800)
18
+ Streamline README
19
+
20
+ * [#799](https://github.com/celluloid/celluloid/pull/799)
21
+ Update links, add diagram preview.
22
+
23
+ * [#796](https://github.com/celluloid/celluloid/pull/796)
24
+ Create Class Diagram in Draw.io
25
+
26
+ * [#798](https://github.com/celluloid/celluloid/pull/798)
27
+ Pertinent Newsflash
28
+
29
+ * [#792](https://github.com/celluloid/celluloid/pull/792)
30
+ CI: 2.5.5, 2.6.2
31
+
32
+ * [#788](https://github.com/celluloid/celluloid/pull/788)
33
+ Travis: Include Ruby 2.5, 2.6
34
+
35
+ * [#787](https://github.com/celluloid/celluloid/pull/787)
36
+ Travis config: drop old configuration sudo: false
37
+
38
+ * [#786](https://github.com/celluloid/celluloid/pull/786)
39
+ Travis: use jruby-9.2.5.0
40
+
41
+ * [#783](https://github.com/celluloid/celluloid/pull/783)
42
+ v0.18.0.pre2
43
+
44
+ * [#782](https://github.com/celluloid/celluloid/pull/782)
45
+ Merge 'celluloid-supervision' back into the tree
46
+
47
+ * [#781](https://github.com/celluloid/celluloid/pull/781)
48
+ .gitmodules: No longer used
49
+
50
+ * [#780](https://github.com/celluloid/celluloid/pull/780)
51
+ README.md: Link to unmaintained issue
52
+
53
+ * [#778](https://github.com/celluloid/celluloid/pull/778)
54
+ README.md: Add "maintained: no! (as of 2016)" badge
55
+
56
+ * [#777](https://github.com/celluloid/celluloid/pull/777)
57
+ gemspec: Metadata with supported links
58
+
59
+ * [#776](https://github.com/celluloid/celluloid/pull/776)
60
+ Travis: use jruby-9.2.0.0
61
+
62
+ * [#775](https://github.com/celluloid/celluloid/pull/775)
63
+ Travis: jruby-9.1.17.0
64
+
65
+ * [#769](https://github.com/celluloid/celluloid/pull/769)
66
+ Travis: jruby-9.1.15.0
67
+
68
+ * [#768](https://github.com/celluloid/celluloid/pull/768)
69
+ Travis: use latest JRuby
70
+
71
+ * [#767](https://github.com/celluloid/celluloid/pull/767)
72
+ CHANGES: Add GitHub compare link on each heading
73
+
74
+ * [#766](https://github.com/celluloid/celluloid/pull/766)
75
+ Fix celluloid/celluloid#758
76
+
77
+ * [#765](https://github.com/celluloid/celluloid/pull/765)
78
+ Travis: jruby-9.1.13.0
79
+
80
+ * [#761](https://github.com/celluloid/celluloid/pull/761)
81
+ Travis: jruby-9.1.12.0
82
+
83
+ * [#760](https://github.com/celluloid/celluloid/pull/760)
84
+ Travis: jruby-9.1.10.0
85
+
86
+ * [#759](https://github.com/celluloid/celluloid/pull/759)
87
+ Travis: jruby-9.1.9.0
88
+
89
+ * [#757](https://github.com/celluloid/celluloid/pull/757)
90
+ parameterize error message so old and new Rubies match text
91
+
92
+ * [#756](https://github.com/celluloid/celluloid/pull/756)
93
+ Travis: latest stable rubies
94
+
95
+ * [#754](https://github.com/celluloid/celluloid/pull/754)
96
+ README: Fix badge rendering in Markdown
97
+
98
+ * [#753](https://github.com/celluloid/celluloid/pull/753)
99
+ Travis: use jruby-9.1.8.0
100
+
101
+ * [#752](https://github.com/celluloid/celluloid/pull/752)
102
+ Misspellings
103
+
104
+ * [#749](https://github.com/celluloid/celluloid/pull/749)
105
+ Return false from Celluloid.running? if Celluloid.boot hasn't been called
106
+
107
+ * [#751](https://github.com/celluloid/celluloid/pull/751)
108
+ Travis: Use JRuby 9.1.7.0
109
+
110
+ * [#740](https://github.com/celluloid/celluloid/pull/740)
111
+ Global variables: stop the bleeding
112
+
113
+ * [#739](https://github.com/celluloid/celluloid/pull/739)
114
+ Remove hacks around old MRIs, JRuby, and rbx
115
+
116
+ * [#738](https://github.com/celluloid/celluloid/pull/738)
117
+ Update to RuboCop 0.45.0 (with new rubocop.yml policy)
118
+
119
+ * [#737](https://github.com/celluloid/celluloid/pull/737)
120
+ Simplify dependencies: merge 'essentials' and 'culture' repos
121
+
122
+ * [#736](https://github.com/celluloid/celluloid/pull/736)
123
+ Remove $CELLULOID_BACKPORTED and $CELLULOID_MANAGED
124
+
125
+ * [#735](https://github.com/celluloid/celluloid/pull/735)
126
+ Require Ruby 2.2.6+
127
+
128
+ * [#729](https://github.com/celluloid/celluloid/pull/729)
129
+ Remove mysterious Fiber.yield
130
+
131
+ * [#721](https://github.com/celluloid/celluloid/pull/721)
132
+ Instruction for cloning Celluloid via github
133
+
134
+ * [#715](https://github.com/celluloid/celluloid/pull/715)
135
+ fix error response reference in Future#cancel
136
+
137
+ * [#712](https://github.com/celluloid/celluloid/pull/712)
138
+ Add RBX-3 to the build
139
+
140
+ * [#711](https://github.com/celluloid/celluloid/pull/711)
141
+ Added bundler cache
142
+
143
+ * [#709](https://github.com/celluloid/celluloid/pull/709)
144
+ Fix autostart. Fixes https://github.com/celluloid/celluloid/issues/698
145
+
146
+ * [#705](https://github.com/celluloid/celluloid/pull/705)
147
+ Adding method source code path to backtrace
148
+
149
+ ## [0.17.3] (2016-01-18)
150
+
151
+ [0.17.3]: https://github.com/celluloid/celluloid/compare/v0.17.2...v0.17.3
152
+
153
+ * [#701](https://github.com/celluloid/celluloid/pull/701)
154
+ Conditions in loose threads loop does not take into account the difference between
155
+ backtraces from ruby 2.0.0 and greater than. Fixes celluloid/celluloid-io#165.
156
+ ([@TiagoCardoso1983])
157
+
158
+ * [#700](https://github.com/celluloid/celluloid/pull/700)
159
+ Set celluloid logger level to info by default unless debug is enabled. Fixes #667.
160
+ ([@ioquatix])
161
+
162
+ * [#695](https://github.com/celluloid/celluloid/pull/695)
163
+ Extending the condition event handler with the block; this solves a bug
164
+ introduced in jruby >9.0.0.0, which breaks with an ArgumentError exception,
165
+ apparently due to the way to_proc procs are passed arguments. Fixes #694.
166
+ ([@TiagoCardoso1983])
167
+
168
+ * [#689](https://github.com/celluloid/celluloid/pull/689)
169
+ Simplified sync, async and future proxies by providing specific AbstractCall base.
170
+ ([@ioquatix])
171
+
172
+ * [#688](https://github.com/celluloid/celluloid/pull/688)
173
+ Fix failure to remove dead actors from sets, e.g. celluloid-supervision.
174
+ ([@ioquatix])
175
+
176
+ * [#686](https://github.com/celluloid/celluloid/pull/686)
177
+ Print out method name to help debugging method call which caused dead actor error.
178
+ ([@ioquatix])
179
+
180
+ * [#682](https://github.com/celluloid/celluloid/pull/682)
181
+ Remove excess call/block require.
182
+
183
+ * [#666](https://github.com/celluloid/celluloid/pull/666)
184
+ Don't catch IOError.
185
+
186
+ ## [0.17.2] (2015-09-30)
187
+
188
+ [0.17.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.2...v0.17.2
189
+
3
190
  * Revamped test suite, using shared RSpec configuration layer provided by Celluloid itself.
4
191
  * Updated gem dependencies provided by Celluloid::Sync... extraneous gems removed, or marked as development dependencies.
5
- - Clean up deprecation notes.
192
+ * Clean up deprecation notes.
193
+
194
+ ## [0.17.1.2] (2015-08-21)
195
+
196
+ [0.17.1.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.1...v0.17.1.2
197
+
198
+ * Fixes to posted markdown content.
199
+ * Pull in new gem dependencies.
200
+
201
+ ## [0.17.1.1] (2015-08-07)
202
+
203
+ [0.17.1.1]: https://github.com/celluloid/celluloid/compare/v0.17.1...v0.17.1.1
6
204
 
7
- 0.17.1.2 (2015-08-21)
8
- -----
9
- - Fixes to posted markdown content.
10
- - Pull in new gem dependencies.
205
+ * Revert "no task to suspend" code from #232.
11
206
 
12
- 0.17.1.1 (2015-08-07)
13
- -----
14
- - Revert "no task to suspend" code from #232.
207
+ ## [0.17.1] (2015-08-06)
208
+
209
+ [0.17.1]: https://github.com/celluloid/celluloid/compare/v0.17.0...v0.17.1
15
210
 
16
- 0.17.1 (2015-08-06)
17
- -----
18
211
  * `Celluloid::ActorSystem` moved to `Celluloid::Actor::System`, and from `celluloid/actor_system.rb` to `celluloid/actor/system.rb`
19
212
  * Added extensible API for defining new SystemEvents, and having them handled... without everyone changing `Actor#handle_system_event`.
20
213
  * Deprecated Task::TerminatedError & Task::TimeoutError... Consolidated in exceptions.rb, inherited from Exceptions vs. StandardError.
21
214
  * General round-up of all "errors" emitted throughout Celluloid, to either be derived from `Celluloid::Error` or `Celluloid::Interruption`.
22
215
  * Added ability to pass a block to `Condition#wait` which runs a `{ |value| ... }` type block if present, once the value is obtained by waiting.
23
216
 
24
- 0.17.0 (2015-07-04)
25
- -----
217
+ ## [0.17.0] (2015-07-04)
218
+
219
+ [0.17.0]: https://github.com/celluloid/celluloid/compare/v0.16.0...v0.17.0
220
+
26
221
  * Fix $CELLULOID_TEST warnings
27
222
  * Massive overhaul of test suite, end-to-end.
28
223
  * Make "Terminating task" log messages debug-level events
@@ -52,8 +247,10 @@
52
247
  * Implement `Group::Manager` as base for future `Group::Unlocker` and other such systems traversing `ActorSystem#group` regularly.
53
248
  * Reduce number of supervisors instantiated by `ActorSystem` by consolidating them down to `Service::Root` container instances.
54
249
 
55
- 0.16.0 (2014-09-04)
56
- -----
250
+ ## [0.16.0] (2014-09-04)
251
+
252
+ [0.16.0]: https://github.com/celluloid/celluloid/compare/v0.15.2...v0.16.0
253
+
57
254
  * Factor apart Celluloid::Cell (concurrent objects) from Celluloid::Actor
58
255
  * Introduce Celluloid::ActorSystem as an abstraction around the backend
59
256
  actor implementation (idea borrowed from Akka)
@@ -71,16 +268,22 @@
71
268
  * Better thread names on JRuby for easier debugging
72
269
  * Thread safety fixes to internal thread pool
73
270
 
74
- 0.15.2 (2013-10-06)
75
- -----
271
+ ## [0.15.2] (2013-10-06)
272
+
273
+ [0.15.2]: https://github.com/celluloid/celluloid/compare/v0.15.1...v0.15.2
274
+
76
275
  * require 'celluloid/test' for at_exit-free testing
77
276
 
78
- 0.15.1 (2013-09-06)
79
- -----
277
+ ## [0.15.1] (2013-09-06)
278
+
279
+ [0.15.1]: https://github.com/celluloid/celluloid/compare/v0.15.0...v0.15.1
280
+
80
281
  * Only raise on nested tasks if $CELLULOID_DEBUG is set
81
282
 
82
- 0.15.0 (2013-09-04)
83
- -----
283
+ ## [0.15.0] (2013-09-04)
284
+
285
+ [0.15.0]: https://github.com/celluloid/celluloid/compare/v0.14.0...v0.15.0
286
+
84
287
  * Remove legacy support for "bang"-method based async invocation
85
288
  * Generic timeout support with Celluloid#timeout
86
289
  * Implement recursion detection for #inspect, avoiding infinite loop bugs
@@ -95,8 +298,10 @@
95
298
  * Reimplement signal system on top of Conditions
96
299
  * Add metadata like the current method to Celluloid::StackDumps
97
300
 
98
- 0.14.0 (2013-05-07)
99
- -----
301
+ ## [0.14.0] (2013-05-07)
302
+
303
+ [0.14.0]: https://github.com/celluloid/celluloid/compare/v0.13.0...v0.14.0
304
+
100
305
  * Use a Thread-subclass for Celluloid
101
306
  * Implement actor-local variables
102
307
  * Add helper methods to the class
@@ -110,8 +315,10 @@
110
315
  * Execute blocks on the sender by default
111
316
  * Fix CPU counter on windows
112
317
 
113
- 0.13.0
114
- -----
318
+ ## [0.13.0]
319
+
320
+ [0.13.0]: https://github.com/celluloid/celluloid/compare/v0.12.4...v0.13.0
321
+
115
322
  * API change: Require Celluloid with: require 'celluloid/autostart' to
116
323
  automatically start support actors and configure at_exit handler which
117
324
  automatically terminates all actors.
@@ -125,8 +332,10 @@
125
332
  * Celluloid#call_chain_id provides UUIDs for calls across actors
126
333
  * Give all thread locals a :celluloid_* prefix
127
334
 
128
- 0.12.4
129
- -----
335
+ ## [0.12.4]
336
+
337
+ [0.12.4]: https://github.com/celluloid/celluloid/compare/v0.12.3...v0.12.4
338
+
130
339
  * Bugfix: Clear dead/crashed actors out of links
131
340
  * Bugfix: Exclusive mode was broken
132
341
  * Bugfix: Celluloid::SupervisionGroup#run was broken
@@ -136,17 +345,24 @@
136
345
  * Use #public_send to dispatch Celluloid methods
137
346
  * #idle_size and #busy_size for Celluloid::PoolManager
138
347
 
139
- 0.12.3
140
- -----
348
+ ## [0.12.3]
349
+
350
+ [0.12.3]: https://github.com/celluloid/celluloid/compare/v0.12.2...v0.12.3
351
+
352
+
141
353
  * Bugfix: Ensure exclusive mode works correctly for per-method case
142
354
  * Bugfix: Exit handlers were not being inherited correctly
143
355
 
144
- 0.12.2
145
- -----
356
+ ## [0.12.2]
357
+
358
+ [0.12.2]: https://github.com/celluloid/celluloid/compare/v0.12.1...v0.12.2
359
+
146
360
  * Disable IncidentReporter by default
147
361
 
148
- 0.12.1
149
- -----
362
+ ## [0.12.1]
363
+
364
+ [0.12.1]: https://github.com/celluloid/celluloid/compare/v0.12.0...v0.12.1
365
+
150
366
  * Fix bug in unsetting of exclusive mode
151
367
  * New incident report system for providing better debugging reports
152
368
  * Revert BasicObject proxies for now... they are causing problems
@@ -156,8 +372,10 @@
156
372
  * Remove Celluloid#alive? as it cannot be called in any manner that will ever
157
373
  return anything but true, rendering it useless
158
374
 
159
- 0.12.0
160
- -----
375
+ ## [0.12.0]
376
+
377
+ [0.12.0]: https://github.com/celluloid/celluloid/compare/v0.11.1...v0.12.0
378
+
161
379
  * Alternative async syntax: actor.async.method in lieu of actor.method!
162
380
  Original syntax still available but will be removed in Celluloid 1.0
163
381
  * Alternative future syntax: actor.future.method in lieu of future(:method)
@@ -180,8 +398,10 @@
180
398
  defined by use_mailbox. This is now fixed.
181
399
  * `exclusive` class method without arguments makes the whole actor exclusive
182
400
 
183
- 0.11.1
184
- -----
401
+ ## [0.11.1]
402
+
403
+ [0.11.1]: https://github.com/celluloid/celluloid/compare/v0.11.0...v0.11.1
404
+
185
405
  * 'exclusive' class method marks methods as always exclusive and runs them
186
406
  outside of a Fiber (useful if you need more stack than Fibers provide)
187
407
  * Celluloid::PoolManager returns its own class when #class is called, instead
@@ -190,8 +410,10 @@
190
410
  * Celluloid::Timers extracted into the timers gem, which Celluloid now
191
411
  uses for its own timers
192
412
 
193
- 0.11.0
194
- -----
413
+ ## [0.11.0]
414
+
415
+ [0.11.0]: https://github.com/celluloid/celluloid/compare/v0.10.0...v0.11.0
416
+
195
417
  * Celluloid::Application constant permanently removed
196
418
  * Celluloid::Pool removed in favor of Celluloid.pool
197
419
  * Celluloid::Group renamed to Celluloid::SupervisionGroup, old name is
@@ -205,22 +427,28 @@
205
427
  * abort can now accept a string instead of an exception object and will raise
206
428
  RuntimeError in the caller's context
207
429
 
208
- 0.10.0
209
- -----
430
+ ## [0.10.0]
431
+
432
+ [0.10.0]: https://github.com/celluloid/celluloid/compare/v0.9.1...v0.10.0
433
+
210
434
  * Celluloid::Actor.current is now the de facto way to obtain the current actor
211
435
  * #terminate now uses system messages, making termination take priority over
212
436
  other pending methods
213
437
  * #terminate! provides asynchronous termination
214
438
 
215
- 0.9.1
216
- -----
439
+ ## [0.9.1]
440
+
441
+ [0.9.1]: https://github.com/celluloid/celluloid/compare/v0.9.0...v0.9.1
442
+
217
443
  * Recurring timers with Celluloid#every(n) { ... }
218
444
  * Obtain UUIDs with Celluloid.uuid
219
445
  * Obtain the number of CPU cores available with Celluloid.cores
220
446
  * Celluloid::Pool defaults to one actor per CPU core max by default
221
447
 
222
- 0.9.0
223
- -----
448
+ ## [0.9.0]
449
+
450
+ [0.9.0]: https://github.com/celluloid/celluloid/compare/v0.8.0...v0.9.0
451
+
224
452
  * Celluloid::Pool supervises pools of actors
225
453
  * Graceful shutdown which calls #terminate on all actors
226
454
  * Celluloid::Actor.all returns all running actors
@@ -229,8 +457,10 @@
229
457
  * Celluloid.exception_handler { |ex| ... } defines a callback for notifying
230
458
  exceptions (for use with Airbrake, exception_notifier, etc.)
231
459
 
232
- 0.8.0
233
- -----
460
+ ## [0.8.0]
461
+
462
+ [0.8.0]: https://github.com/celluloid/celluloid/compare/v0.7.2...v0.8.0
463
+
234
464
  * Celluloid::Application is now Celluloid::Group
235
465
  * Futures no longer use a thread unless created with a block
236
466
  * No more future thread-leaks! Future threads auto-terminate now
@@ -241,20 +471,26 @@
241
471
  * Celluloid::FSMs are no longer actors themselves
242
472
  * Benchmarks using benchmark_suite
243
473
 
244
- 0.7.2
245
- -----
474
+ ## [0.7.2]
475
+
476
+ [0.7.2]: https://github.com/celluloid/celluloid/compare/v0.7.1...v0.7.2
477
+
246
478
  * Workaround fiber problems on JRuby 1.6.5.1 in addition to 1.6.5
247
479
  * Fix class displayed when inspecting dead actors
248
480
 
249
- 0.7.1
250
- -----
481
+ ## [0.7.1]
482
+
483
+ [0.7.1]: https://github.com/celluloid/celluloid/compare/v0.7.0...v0.7.1
484
+
251
485
  * More examples!
252
486
  * Cancel all pending tasks when actors crash
253
487
  * Log all errors that occur during signaling failures
254
488
  * Work around thread-local issues on rbx (see 52325ecd)
255
489
 
256
- 0.7.0
257
- -----
490
+ ## [0.7.0]
491
+
492
+ [0.7.0]: https://github.com/celluloid/celluloid/compare/v0.6.2...v0.7.0
493
+
258
494
  * Celluloid::Task abstraction replaces Celluloid::Fiber
259
495
  * Celluloid#tasks API to introspect on running tasks
260
496
  * Move Celluloid::IO into its own gem, celluloid-io
@@ -268,22 +504,28 @@
268
504
  * Celluloid.receive and Celluloid#receive now accept an optional timeout
269
505
  * Celluloid::Mailbox#receive now accepts an optional timeout
270
506
 
271
- 0.6.2
272
- -----
507
+ ## [0.6.2]
508
+
509
+ [0.6.2]: https://github.com/celluloid/celluloid/compare/v0.6.1...v0.6.2
510
+
273
511
  * List all registered actors with Celluloid::Actor.registered
274
512
  * All logging now handled through Celluloid::Logger
275
513
  * Rescue DeadActorError in Celluloid::ActorProxy#inspect
276
514
 
277
- 0.6.1
278
- -----
515
+ ## [0.6.1]
516
+
517
+ [0.6.1]: https://github.com/celluloid/celluloid/compare/v0.6.0...v0.6.1
518
+
279
519
  * Celluloid#links obtains Celluloid::Links for a given actor
280
520
  * The #class method is now proxied to actors
281
521
  * Celluloid::Fiber replaces the Celluloid.fiber and Celluloid.resume_fiber API
282
522
  * Use Thread.mailbox instead of Thread.current.mailbox to obtain the mailbox
283
523
  for the current thread
284
524
 
285
- 0.6.0
286
- -----
525
+ ## [0.6.0]
526
+
527
+ [0.6.0]: https://github.com/celluloid/celluloid/compare/v0.5.0...v0.6.0
528
+
287
529
  * Celluloid::Application classes for describing the structure of applications
288
530
  built with Celluloid
289
531
  * Methods of actors can now participate in the actor protocol directly via
@@ -296,8 +538,10 @@
296
538
  * Add Celluloid.fiber and Celluloid.resume_fiber to allow extension APIs to
297
539
  participate in the Celluloid fiber protocol
298
540
 
299
- 0.5.0
300
- -----
541
+ ## [0.5.0]
542
+
543
+ [0.5.0]: https://github.com/celluloid/celluloid/compare/v0.4.0...v0.5.0
544
+
301
545
  * "include Celluloid::Actor" no longer supported. Use "include Celluloid"
302
546
  * New Celluloid::IO module for actors that multiplex IO operations
303
547
  * Major overhaul of Celluloid::Actor internals (see 25e22cc1)
@@ -312,8 +556,21 @@
312
556
  * Magically skip ahead a few version numbers to impart the magnitude of this
313
557
  release. It's my versioning scheme and I can do what I wanna.
314
558
 
315
- 0.2.2
316
- -----
559
+ ## [0.4.0]
560
+
561
+ [0.4.0]: https://github.com/celluloid/celluloid/compare/v0.3.0...v0.4.0
562
+
563
+ * This version was mysteriously lost to the sands of time
564
+
565
+ ## [0.3.0]
566
+
567
+ [0.3.0]: https://github.com/celluloid/celluloid/compare/v0.2.2...v0.3.0
568
+
569
+ * This version was also mysteriously lost to the sands of time
570
+
571
+ ## [0.2.2]
572
+
573
+ [0.2.2]: https://github.com/celluloid/celluloid/compare/v0.2.1...v0.2.2
317
574
 
318
575
  * AbortErrors now reraise in caller scope and get a caller-focused backtrace
319
576
  * Log failed async calls instead of just letting them fail silently
@@ -321,14 +578,15 @@
321
578
  * Actors can now make async calls to themselves
322
579
  * Resolve crashes that occur when sending responses to exited/dead callers
323
580
 
324
- 0.2.1
325
- -----
581
+ ## [0.2.1]
582
+
583
+ [0.2.1]: https://github.com/celluloid/celluloid/compare/v0.2.0...v0.2.1
326
584
 
327
585
  * Hack around a bug of an indeterminate cause (2baba3d2)
328
- * COLON!#@!
329
586
 
330
- 0.2.0
331
- -----
587
+ ## [0.2.0]
588
+
589
+ [0.2.0]: https://github.com/celluloid/celluloid/compare/v0.1.0...v0.2.0
332
590
 
333
591
  * Support for future method calls with MyActor#future
334
592
  * Initial signaling support via MyActor#signal and MyActor#wait
@@ -337,8 +595,10 @@
337
595
  * Add an underscore prefix to all of Celluloid's instance variables so they don't
338
596
  clash with user-defined ones.
339
597
 
340
- 0.1.0
341
- -----
598
+ ## [0.1.0]
599
+
600
+ [0.1.0]: https://github.com/celluloid/celluloid/compare/v0.0.3...v0.1.0
601
+
342
602
  * Fiber-based reentrant actors. Requires Ruby 1.9
343
603
  * MyActor.new (where MyActor includes Celluloid::Actor) is now identical to .spawn
344
604
  * Terminate actors with MyActor#terminate
@@ -347,10 +607,15 @@
347
607
  * Synchronization now based on ConditionVariables instead of Celluloid::Waker
348
608
  * Determine if you're in actor scope with Celluloid.actor?
349
609
 
350
- 0.0.3
351
- -----
610
+ ## [0.0.3]
611
+
612
+ [0.0.3]: https://github.com/celluloid/celluloid/compare/v0.0.1...v0.0.3
613
+
352
614
  * Remove self-referential dependency in gemspec
353
615
 
354
- 0.0.1
355
- -----
616
+ ## 0.0.1
617
+
356
618
  * Initial release
619
+
620
+ [@ioquatix]: https://github.com/ioquatix
621
+ [@TiagoCardoso1983]: https://github.com/TiagoCardoso1983