celluloid 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -45,13 +45,8 @@ module Celluloid
45
45
  # normal Ruby objects wrapped in threads which communicate with asynchronous
46
46
  # messages. The implementation is inspired by Erlang's gen_server
47
47
  module Actor
48
- attr_reader :mailbox
49
-
50
- # Methods added to classes which include Celluloid::Actor
48
+ # Methods added to classes which include Celluloid
51
49
  module ClassMethods
52
- # Retrieve the exit handler method for this class
53
- attr_reader :exit_handler
54
-
55
50
  # Create a new actor
56
51
  def spawn(*args, &block)
57
52
  actor = allocate
@@ -68,7 +63,7 @@ module Celluloid
68
63
 
69
64
  # FIXME: this is a bit repetitive with the code above
70
65
  actor = allocate
71
- proxy = actor.__start_actor
66
+ proxy = actor.__start_actor
72
67
  current_actor.link actor
73
68
  proxy.send(:initialize, *args, &block)
74
69
 
@@ -90,15 +85,21 @@ module Celluloid
90
85
 
91
86
  # Trap errors from actors we're linked to when they exit
92
87
  def trap_exit(callback)
93
- @exit_handler = callback.to_sym
88
+ @_exit_handler = callback.to_sym
94
89
  end
90
+
91
+ # Obtain the exit handler method for this class
92
+ def exit_handler; @_exit_handler; end
95
93
  end
96
94
 
97
95
  # Instance methods added to the public API
98
96
  module InstanceMethods
97
+ # Obtain the mailbox of this actor
98
+ def mailbox; @_mailbox; end
99
+
99
100
  # Is this actor alive?
100
101
  def alive?
101
- @thread.alive?
102
+ @_thread.alive?
102
103
  end
103
104
 
104
105
  # Raise an exception in caller context, but stay running
@@ -108,7 +109,7 @@ module Celluloid
108
109
 
109
110
  # Terminate this actor
110
111
  def terminate
111
- @running = false
112
+ @_running = false
112
113
  end
113
114
 
114
115
  def inspect
@@ -116,43 +117,59 @@ module Celluloid
116
117
 
117
118
  ivars = []
118
119
  instance_variables.each do |ivar|
119
- next if %w(@mailbox @links @proxy @thread).include? ivar.to_s
120
+ ivar_name = ivar.to_s.sub(/^@_/, '')
121
+ next if %w(mailbox links signals proxy thread running).include? ivar_name
120
122
  ivars << "#{ivar}=#{instance_variable_get(ivar).inspect}"
121
123
  end
122
124
 
123
125
  str << " " << ivars.join(' ') unless ivars.empty?
124
126
  str << ">"
125
127
  end
128
+
129
+ #
130
+ # Signals
131
+ #
132
+
133
+ # Send a signal with the given name to all waiting methods
134
+ def signal(name, value = nil)
135
+ @_signals.send name, value
136
+ end
137
+
138
+ # Wait for the given signal
139
+ def wait(name)
140
+ @_signals.wait name
141
+ end
126
142
  end
127
143
 
128
144
  # Internal methods not intended as part of the public API
129
145
  module InternalMethods
130
146
  # Actor-specific initialization and startup
131
147
  def __start_actor(*args, &block)
132
- @mailbox = Mailbox.new
133
- @links = Links.new
134
- @proxy = ActorProxy.new(self, @mailbox)
135
- @running = true
148
+ @_mailbox = Mailbox.new
149
+ @_links = Links.new
150
+ @_signals = Signals.new
151
+ @_proxy = ActorProxy.new(self, @_mailbox)
152
+ @_running = true
136
153
 
137
- @thread = Thread.new do
154
+ @_thread = Thread.new do
138
155
  __init_thread
139
156
  __run_actor
140
157
  end
141
158
 
142
- @proxy
159
+ @_proxy
143
160
  end
144
161
 
145
162
  # Configure thread locals for the running thread
146
163
  def __init_thread
147
164
  Thread.current[:actor] = self
148
- Thread.current[:actor_proxy] = @proxy
149
- Thread.current[:mailbox] = @mailbox
165
+ Thread.current[:actor_proxy] = @_proxy
166
+ Thread.current[:mailbox] = @_mailbox
150
167
  end
151
168
 
152
169
  # Run the actor
153
170
  def __run_actor
154
171
  __process_messages
155
- __cleanup ExitEvent.new(@proxy)
172
+ __cleanup ExitEvent.new(@_proxy)
156
173
  rescue Exception => ex
157
174
  __handle_crash(ex)
158
175
  ensure
@@ -163,9 +180,9 @@ module Celluloid
163
180
  def __process_messages
164
181
  pending_calls = {}
165
182
 
166
- while @running
183
+ while @_running
167
184
  begin
168
- message = @mailbox.receive
185
+ message = @_mailbox.receive
169
186
  rescue ExitEvent => exit_event
170
187
  fiber = Fiber.new do
171
188
  __init_thread
@@ -179,7 +196,7 @@ module Celluloid
179
196
  end
180
197
 
181
198
  case message
182
- when SyncCall
199
+ when Call
183
200
  fiber = Fiber.new do
184
201
  __init_thread
185
202
  message.dispatch(self)
@@ -194,8 +211,6 @@ module Celluloid
194
211
  call = fiber.resume message
195
212
  pending_calls[call] = fiber if fiber.alive?
196
213
  end
197
- when AsyncCall
198
- message.dispatch(self)
199
214
  end # unexpected messages are ignored
200
215
  end
201
216
  end
@@ -215,15 +230,15 @@ module Celluloid
215
230
  # Handle any exceptions that occur within a running actor
216
231
  def __handle_crash(exception)
217
232
  __log_error(exception)
218
- __cleanup ExitEvent.new(@proxy, exception)
233
+ __cleanup ExitEvent.new(@_proxy, exception)
219
234
  rescue Exception => handler_exception
220
235
  __log_error(handler_exception, "ERROR HANDLER CRASHED!")
221
236
  end
222
237
 
223
238
  # Handle cleaning up this actor after it exits
224
239
  def __cleanup(exit_event)
225
- @mailbox.shutdown
226
- @links.send_event exit_event
240
+ @_mailbox.shutdown
241
+ @_links.send_event exit_event
227
242
  end
228
243
 
229
244
  # Log errors when an actor crashes
@@ -1,5 +1,5 @@
1
1
  !RBIX
2
- 3578385345186687227
2
+ 3246536075095810518
3
3
  18
4
4
  M
5
5
  1
@@ -742,104 +742,96 @@ x
742
742
  5
743
743
  Actor
744
744
  i
745
- 99
745
+ 91
746
746
  5
747
747
  66
748
- 5
749
- 7
750
- 0
751
- 47
752
- 49
753
- 1
754
- 1
755
- 15
756
748
  99
757
749
  7
758
- 2
750
+ 0
759
751
  65
760
752
  49
761
- 3
753
+ 1
762
754
  2
763
755
  13
764
756
  99
765
757
  12
766
758
  7
767
- 4
759
+ 2
768
760
  12
769
761
  7
770
- 5
762
+ 3
771
763
  12
772
764
  65
773
765
  12
774
766
  49
775
- 6
767
+ 4
776
768
  4
777
769
  15
778
770
  49
779
- 4
771
+ 2
780
772
  0
781
773
  15
782
774
  99
783
775
  7
784
- 7
776
+ 5
785
777
  65
786
778
  49
787
- 3
779
+ 1
788
780
  2
789
781
  13
790
782
  99
791
783
  12
792
784
  7
793
- 4
785
+ 2
794
786
  12
795
787
  7
796
- 8
788
+ 6
797
789
  12
798
790
  65
799
791
  12
800
792
  49
801
- 6
793
+ 4
802
794
  4
803
795
  15
804
796
  49
805
- 4
797
+ 2
806
798
  0
807
799
  15
808
800
  99
809
801
  7
810
- 9
802
+ 7
811
803
  65
812
804
  49
813
- 3
805
+ 1
814
806
  2
815
807
  13
816
808
  99
817
809
  12
818
810
  7
819
- 4
811
+ 2
820
812
  12
821
813
  7
822
- 10
814
+ 8
823
815
  12
824
816
  65
825
817
  12
826
818
  49
827
- 6
819
+ 4
828
820
  4
829
821
  15
830
822
  49
831
- 4
823
+ 2
832
824
  0
833
825
  15
834
826
  99
835
827
  7
836
- 11
828
+ 9
837
829
  7
838
- 12
830
+ 10
839
831
  65
840
832
  5
841
833
  49
842
- 6
834
+ 4
843
835
  4
844
836
  11
845
837
  I
@@ -854,13 +846,7 @@ I
854
846
  0
855
847
  n
856
848
  p
857
- 13
858
- x
859
- 7
860
- mailbox
861
- x
862
849
  11
863
- attr_reader
864
850
  x
865
851
  12
866
852
  ClassMethods
@@ -878,64 +864,70 @@ x
878
864
  12
879
865
  ClassMethods
880
866
  i
881
- 100
867
+ 106
882
868
  5
883
869
  66
884
- 5
885
- 7
886
- 0
887
- 47
888
- 49
889
- 1
890
- 1
891
- 15
892
870
  99
893
871
  7
894
- 2
872
+ 0
895
873
  7
896
- 3
874
+ 1
897
875
  65
898
876
  67
899
877
  49
900
- 4
878
+ 2
901
879
  0
902
880
  49
903
- 5
881
+ 3
904
882
  4
905
883
  15
906
884
  5
907
885
  7
908
- 6
886
+ 4
909
887
  7
910
- 2
888
+ 0
911
889
  47
912
890
  49
913
- 7
891
+ 5
914
892
  2
915
893
  15
916
894
  99
917
895
  7
918
- 8
896
+ 6
897
+ 7
919
898
  7
920
- 9
921
899
  65
922
900
  67
923
901
  49
924
- 4
902
+ 2
925
903
  0
926
904
  49
927
- 5
905
+ 3
928
906
  4
929
907
  15
930
908
  5
931
909
  7
932
- 10
933
- 7
934
910
  8
911
+ 7
912
+ 6
935
913
  47
936
914
  49
915
+ 5
916
+ 2
917
+ 15
918
+ 99
919
+ 7
920
+ 9
937
921
  7
922
+ 10
923
+ 65
924
+ 67
925
+ 49
938
926
  2
927
+ 0
928
+ 49
929
+ 3
930
+ 4
939
931
  15
940
932
  99
941
933
  7
@@ -945,10 +937,10 @@ i
945
937
  65
946
938
  67
947
939
  49
948
- 4
940
+ 2
949
941
  0
950
942
  49
951
- 5
943
+ 3
952
944
  4
953
945
  15
954
946
  99
@@ -959,10 +951,10 @@ i
959
951
  65
960
952
  67
961
953
  49
962
- 4
954
+ 2
963
955
  0
964
956
  49
965
- 5
957
+ 3
966
958
  4
967
959
  15
968
960
  99
@@ -973,10 +965,10 @@ i
973
965
  65
974
966
  67
975
967
  49
976
- 4
968
+ 2
977
969
  0
978
970
  49
979
- 5
971
+ 3
980
972
  4
981
973
  11
982
974
  I
@@ -993,12 +985,6 @@ n
993
985
  p
994
986
  17
995
987
  x
996
- 12
997
- exit_handler
998
- x
999
- 11
1000
- attr_reader
1001
- x
1002
988
  5
1003
989
  spawn
1004
990
  M
@@ -1092,23 +1078,23 @@ p
1092
1078
  I
1093
1079
  -1
1094
1080
  I
1095
- 38
1081
+ 33
1096
1082
  I
1097
1083
  4
1098
1084
  I
1099
- 39
1085
+ 34
1100
1086
  I
1101
1087
  a
1102
1088
  I
1103
- 3a
1089
+ 35
1104
1090
  I
1105
1091
  12
1106
1092
  I
1107
- 3b
1093
+ 36
1108
1094
  I
1109
1095
  2a
1110
1096
  I
1111
- 3c
1097
+ 37
1112
1098
  I
1113
1099
  2d
1114
1100
  x
@@ -1301,15 +1287,15 @@ p
1301
1287
  I
1302
1288
  -1
1303
1289
  I
1304
- 41
1290
+ 3c
1305
1291
  I
1306
1292
  4
1307
1293
  I
1308
- 42
1294
+ 3d
1309
1295
  I
1310
1296
  12
1311
1297
  I
1312
- 43
1298
+ 3e
1313
1299
  I
1314
1300
  24
1315
1301
  I
@@ -1317,23 +1303,23 @@ I
1317
1303
  I
1318
1304
  25
1319
1305
  I
1320
- 46
1306
+ 41
1321
1307
  I
1322
1308
  2b
1323
1309
  I
1324
- 47
1310
+ 42
1325
1311
  I
1326
1312
  33
1327
1313
  I
1328
- 48
1314
+ 43
1329
1315
  I
1330
1316
  3b
1331
1317
  I
1332
- 49
1318
+ 44
1333
1319
  I
1334
1320
  53
1335
1321
  I
1336
- 4b
1322
+ 46
1337
1323
  I
1338
1324
  56
1339
1325
  x
@@ -1436,11 +1422,11 @@ p
1436
1422
  I
1437
1423
  -1
1438
1424
  I
1439
- 51
1425
+ 4c
1440
1426
  I
1441
1427
  4
1442
1428
  I
1443
- 52
1429
+ 4d
1444
1430
  I
1445
1431
  1e
1446
1432
  x
@@ -1533,11 +1519,11 @@ p
1533
1519
  I
1534
1520
  -1
1535
1521
  I
1536
- 57
1522
+ 52
1537
1523
  I
1538
1524
  4
1539
1525
  I
1540
- 58
1526
+ 53
1541
1527
  I
1542
1528
  20
1543
1529
  x
@@ -1591,18 +1577,18 @@ x
1591
1577
  6
1592
1578
  to_sym
1593
1579
  x
1594
- 13
1595
- @exit_handler
1580
+ 14
1581
+ @_exit_handler
1596
1582
  p
1597
1583
  5
1598
1584
  I
1599
1585
  -1
1600
1586
  I
1601
- 5c
1587
+ 57
1602
1588
  I
1603
1589
  0
1604
1590
  I
1605
- 5d
1591
+ 58
1606
1592
  I
1607
1593
  8
1608
1594
  x
@@ -1613,42 +1599,86 @@ p
1613
1599
  x
1614
1600
  8
1615
1601
  callback
1602
+ x
1603
+ 12
1604
+ exit_handler
1605
+ M
1606
+ 1
1607
+ n
1608
+ n
1609
+ x
1610
+ 12
1611
+ exit_handler
1612
+ i
1613
+ 3
1614
+ 39
1615
+ 0
1616
+ 11
1617
+ I
1618
+ 1
1619
+ I
1620
+ 0
1621
+ I
1622
+ 0
1623
+ I
1624
+ 0
1625
+ I
1626
+ 0
1627
+ n
1628
+ p
1629
+ 1
1630
+ x
1631
+ 14
1632
+ @_exit_handler
1633
+ p
1634
+ 3
1635
+ I
1636
+ -1
1637
+ I
1638
+ 5c
1639
+ I
1640
+ 3
1641
+ x
1642
+ 48
1643
+ /Users/tony/src/celluloid/lib/celluloid/actor.rb
1644
+ p
1645
+ 0
1616
1646
  p
1617
1647
  17
1618
1648
  I
1619
1649
  2
1620
1650
  I
1621
- 35
1651
+ 33
1622
1652
  I
1623
- a
1653
+ 10
1624
1654
  I
1625
- 38
1655
+ 39
1626
1656
  I
1627
- 18
1657
+ 1a
1628
1658
  I
1629
- 3e
1659
+ 3c
1630
1660
  I
1631
- 22
1661
+ 28
1632
1662
  I
1633
- 41
1663
+ 48
1634
1664
  I
1635
- 30
1665
+ 32
1636
1666
  I
1637
- 4d
1667
+ 4c
1638
1668
  I
1639
- 3a
1669
+ 40
1640
1670
  I
1641
- 51
1671
+ 52
1642
1672
  I
1643
- 48
1673
+ 4e
1644
1674
  I
1645
1675
  57
1646
1676
  I
1647
- 56
1677
+ 5c
1648
1678
  I
1649
1679
  5c
1650
1680
  I
1651
- 64
1681
+ 6a
1652
1682
  x
1653
1683
  48
1654
1684
  /Users/tony/src/celluloid/lib/celluloid/actor.rb
@@ -1668,7 +1698,7 @@ x
1668
1698
  15
1669
1699
  InstanceMethods
1670
1700
  i
1671
- 58
1701
+ 100
1672
1702
  5
1673
1703
  66
1674
1704
  99
@@ -1726,20 +1756,112 @@ i
1726
1756
  49
1727
1757
  3
1728
1758
  4
1759
+ 15
1760
+ 99
1761
+ 7
1762
+ 10
1763
+ 7
1729
1764
  11
1730
- I
1731
- 5
1732
- I
1733
- 0
1734
- I
1735
- 0
1736
- I
1737
- 0
1738
- I
1765
+ 65
1766
+ 67
1767
+ 49
1768
+ 2
1739
1769
  0
1740
- n
1741
- p
1742
- 10
1770
+ 49
1771
+ 3
1772
+ 4
1773
+ 15
1774
+ 99
1775
+ 7
1776
+ 12
1777
+ 7
1778
+ 13
1779
+ 65
1780
+ 67
1781
+ 49
1782
+ 2
1783
+ 0
1784
+ 49
1785
+ 3
1786
+ 4
1787
+ 15
1788
+ 99
1789
+ 7
1790
+ 14
1791
+ 7
1792
+ 15
1793
+ 65
1794
+ 67
1795
+ 49
1796
+ 2
1797
+ 0
1798
+ 49
1799
+ 3
1800
+ 4
1801
+ 11
1802
+ I
1803
+ 5
1804
+ I
1805
+ 0
1806
+ I
1807
+ 0
1808
+ I
1809
+ 0
1810
+ I
1811
+ 0
1812
+ n
1813
+ p
1814
+ 16
1815
+ x
1816
+ 7
1817
+ mailbox
1818
+ M
1819
+ 1
1820
+ n
1821
+ n
1822
+ x
1823
+ 7
1824
+ mailbox
1825
+ i
1826
+ 3
1827
+ 39
1828
+ 0
1829
+ 11
1830
+ I
1831
+ 1
1832
+ I
1833
+ 0
1834
+ I
1835
+ 0
1836
+ I
1837
+ 0
1838
+ I
1839
+ 0
1840
+ n
1841
+ p
1842
+ 1
1843
+ x
1844
+ 9
1845
+ @_mailbox
1846
+ p
1847
+ 3
1848
+ I
1849
+ -1
1850
+ I
1851
+ 62
1852
+ I
1853
+ 3
1854
+ x
1855
+ 48
1856
+ /Users/tony/src/celluloid/lib/celluloid/actor.rb
1857
+ p
1858
+ 0
1859
+ x
1860
+ 17
1861
+ method_visibility
1862
+ x
1863
+ 15
1864
+ add_defn_method
1743
1865
  x
1744
1866
  6
1745
1867
  alive?
@@ -1772,8 +1894,8 @@ n
1772
1894
  p
1773
1895
  2
1774
1896
  x
1775
- 7
1776
- @thread
1897
+ 8
1898
+ @_thread
1777
1899
  x
1778
1900
  6
1779
1901
  alive?
@@ -1782,11 +1904,11 @@ p
1782
1904
  I
1783
1905
  -1
1784
1906
  I
1785
- 64
1907
+ 65
1786
1908
  I
1787
1909
  0
1788
1910
  I
1789
- 65
1911
+ 66
1790
1912
  I
1791
1913
  6
1792
1914
  x
@@ -1795,12 +1917,6 @@ x
1795
1917
  p
1796
1918
  0
1797
1919
  x
1798
- 17
1799
- method_visibility
1800
- x
1801
- 15
1802
- add_defn_method
1803
- x
1804
1920
  5
1805
1921
  abort
1806
1922
  M
@@ -1880,11 +1996,11 @@ p
1880
1996
  I
1881
1997
  -1
1882
1998
  I
1883
- 69
1999
+ 6a
1884
2000
  I
1885
2001
  0
1886
2002
  I
1887
- 6a
2003
+ 6b
1888
2004
  I
1889
2005
  22
1890
2006
  x
@@ -1925,18 +2041,18 @@ n
1925
2041
  p
1926
2042
  1
1927
2043
  x
1928
- 8
1929
- @running
2044
+ 9
2045
+ @_running
1930
2046
  p
1931
2047
  5
1932
2048
  I
1933
2049
  -1
1934
2050
  I
1935
- 6e
2051
+ 6f
1936
2052
  I
1937
2053
  0
1938
2054
  I
1939
- 6f
2055
+ 70
1940
2056
  I
1941
2057
  4
1942
2058
  x
@@ -2086,39 +2202,74 @@ x
2086
2202
  7
2087
2203
  inspect
2088
2204
  i
2089
- 63
2205
+ 98
2090
2206
  57
2091
2207
  19
2092
2208
  0
2093
2209
  15
2094
- 7
2210
+ 20
2211
+ 0
2212
+ 49
2213
+ 0
2095
2214
  0
2096
- 64
2097
2215
  7
2098
2216
  1
2099
- 64
2217
+ 13
2218
+ 70
2219
+ 9
2220
+ 27
2221
+ 15
2222
+ 44
2223
+ 43
2224
+ 2
2100
2225
  7
2226
+ 3
2227
+ 78
2228
+ 49
2229
+ 4
2101
2230
  2
2231
+ 6
2232
+ 1
2233
+ 7
2234
+ 5
2102
2235
  64
2236
+ 49
2237
+ 6
2238
+ 2
2239
+ 19
2240
+ 1
2241
+ 15
2242
+ 7
2103
2243
  7
2104
- 3
2244
+ 64
2245
+ 7
2246
+ 8
2247
+ 64
2248
+ 7
2249
+ 9
2250
+ 64
2251
+ 7
2252
+ 10
2253
+ 64
2254
+ 7
2255
+ 11
2256
+ 64
2257
+ 7
2258
+ 12
2105
2259
  64
2106
2260
  35
2107
- 4
2261
+ 6
2108
2262
  20
2109
- 0
2110
- 49
2111
- 4
2112
- 0
2263
+ 1
2113
2264
  49
2114
- 5
2265
+ 13
2115
2266
  1
2116
2267
  9
2117
- 32
2268
+ 67
2118
2269
  1
2119
2270
  11
2120
2271
  8
2121
- 33
2272
+ 68
2122
2273
  1
2123
2274
  15
2124
2275
  21
@@ -2128,32 +2279,32 @@ i
2128
2279
  0
2129
2280
  47
2130
2281
  101
2131
- 4
2282
+ 0
2132
2283
  7
2133
- 6
2284
+ 14
2134
2285
  5
2135
2286
  20
2136
2287
  0
2137
2288
  47
2138
2289
  49
2139
- 7
2290
+ 15
2140
2291
  1
2141
2292
  49
2142
- 8
2293
+ 16
2143
2294
  0
2144
2295
  47
2145
2296
  101
2146
- 4
2297
+ 0
2147
2298
  63
2148
2299
  3
2149
2300
  49
2150
- 9
2301
+ 17
2151
2302
  1
2152
2303
  11
2153
2304
  I
2154
- 7
2305
+ 9
2155
2306
  I
2156
- 1
2307
+ 2
2157
2308
  I
2158
2309
  1
2159
2310
  I
@@ -2162,22 +2313,44 @@ I
2162
2313
  1
2163
2314
  n
2164
2315
  p
2165
- 10
2316
+ 18
2317
+ x
2318
+ 4
2319
+ to_s
2320
+ n
2321
+ x
2322
+ 6
2323
+ Regexp
2166
2324
  s
2167
- 8
2168
- @mailbox
2325
+ 3
2326
+ ^@_
2327
+ x
2328
+ 3
2329
+ new
2169
2330
  s
2170
- 6
2171
- @links
2331
+ 0
2332
+
2333
+ x
2334
+ 3
2335
+ sub
2336
+ s
2337
+ 7
2338
+ mailbox
2339
+ s
2340
+ 5
2341
+ links
2342
+ s
2343
+ 7
2344
+ signals
2345
+ s
2346
+ 5
2347
+ proxy
2172
2348
  s
2173
2349
  6
2174
- @proxy
2350
+ thread
2175
2351
  s
2176
2352
  7
2177
- @thread
2178
- x
2179
- 4
2180
- to_s
2353
+ running
2181
2354
  x
2182
2355
  8
2183
2356
  include?
@@ -2194,34 +2367,41 @@ x
2194
2367
  2
2195
2368
  <<
2196
2369
  p
2197
- 9
2370
+ 11
2198
2371
  I
2199
2372
  0
2200
2373
  I
2201
- 76
2374
+ 77
2202
2375
  I
2203
2376
  4
2204
2377
  I
2205
- 77
2378
+ 78
2206
2379
  I
2207
- 21
2380
+ 24
2381
+ I
2382
+ 79
2383
+ I
2384
+ 44
2208
2385
  I
2209
2386
  0
2210
2387
  I
2211
- 22
2388
+ 45
2212
2389
  I
2213
- 78
2390
+ 7a
2214
2391
  I
2215
- 3f
2392
+ 62
2216
2393
  x
2217
2394
  48
2218
2395
  /Users/tony/src/celluloid/lib/celluloid/actor.rb
2219
2396
  p
2220
- 1
2397
+ 2
2221
2398
  x
2222
2399
  4
2223
2400
  ivar
2224
2401
  x
2402
+ 9
2403
+ ivar_name
2404
+ x
2225
2405
  4
2226
2406
  each
2227
2407
  x
@@ -2244,23 +2424,23 @@ p
2244
2424
  I
2245
2425
  -1
2246
2426
  I
2247
- 72
2427
+ 73
2248
2428
  I
2249
2429
  0
2250
2430
  I
2251
- 73
2431
+ 74
2252
2432
  I
2253
2433
  1e
2254
2434
  I
2255
- 75
2435
+ 76
2256
2436
  I
2257
2437
  23
2258
2438
  I
2259
- 76
2439
+ 77
2260
2440
  I
2261
2441
  2c
2262
2442
  I
2263
- 7b
2443
+ 7d
2264
2444
  I
2265
2445
  49
2266
2446
  I
@@ -2268,7 +2448,7 @@ I
2268
2448
  I
2269
2449
  4a
2270
2450
  I
2271
- 7c
2451
+ 7e
2272
2452
  I
2273
2453
  53
2274
2454
  x
@@ -2282,26 +2462,169 @@ str
2282
2462
  x
2283
2463
  5
2284
2464
  ivars
2465
+ x
2466
+ 6
2467
+ signal
2468
+ M
2469
+ 1
2470
+ n
2471
+ n
2472
+ x
2473
+ 6
2474
+ signal
2475
+ i
2476
+ 18
2477
+ 23
2478
+ 1
2479
+ 10
2480
+ 8
2481
+ 1
2482
+ 19
2483
+ 1
2484
+ 15
2485
+ 39
2486
+ 0
2487
+ 20
2488
+ 0
2489
+ 20
2490
+ 1
2491
+ 49
2492
+ 1
2493
+ 2
2494
+ 11
2495
+ I
2496
+ 5
2497
+ I
2498
+ 2
2499
+ I
2500
+ 1
2501
+ I
2502
+ 0
2503
+ I
2504
+ 2
2505
+ n
2506
+ p
2507
+ 2
2508
+ x
2509
+ 9
2510
+ @_signals
2511
+ x
2512
+ 4
2513
+ send
2285
2514
  p
2515
+ 5
2516
+ I
2517
+ -1
2518
+ I
2519
+ 86
2520
+ I
2521
+ 8
2522
+ I
2523
+ 87
2524
+ I
2525
+ 12
2526
+ x
2527
+ 48
2528
+ /Users/tony/src/celluloid/lib/celluloid/actor.rb
2529
+ p
2530
+ 2
2531
+ x
2532
+ 4
2533
+ name
2534
+ x
2535
+ 5
2536
+ value
2537
+ x
2538
+ 4
2539
+ wait
2540
+ M
2541
+ 1
2542
+ n
2543
+ n
2544
+ x
2545
+ 4
2546
+ wait
2547
+ i
2548
+ 8
2549
+ 39
2550
+ 0
2551
+ 20
2552
+ 0
2553
+ 49
2554
+ 1
2555
+ 1
2556
+ 11
2557
+ I
2558
+ 3
2559
+ I
2560
+ 1
2561
+ I
2562
+ 1
2563
+ I
2564
+ 0
2565
+ I
2566
+ 1
2567
+ n
2568
+ p
2569
+ 2
2570
+ x
2286
2571
  9
2572
+ @_signals
2573
+ x
2574
+ 4
2575
+ wait
2576
+ p
2577
+ 5
2578
+ I
2579
+ -1
2580
+ I
2581
+ 8b
2582
+ I
2583
+ 0
2584
+ I
2585
+ 8c
2586
+ I
2587
+ 8
2588
+ x
2589
+ 48
2590
+ /Users/tony/src/celluloid/lib/celluloid/actor.rb
2591
+ p
2592
+ 1
2593
+ x
2594
+ 4
2595
+ name
2596
+ p
2597
+ 15
2287
2598
  I
2288
2599
  2
2289
2600
  I
2290
- 64
2601
+ 62
2291
2602
  I
2292
2603
  10
2293
2604
  I
2294
- 69
2605
+ 65
2295
2606
  I
2296
2607
  1e
2297
2608
  I
2298
- 6e
2609
+ 6a
2299
2610
  I
2300
2611
  2c
2301
2612
  I
2302
- 72
2613
+ 6f
2303
2614
  I
2304
2615
  3a
2616
+ I
2617
+ 73
2618
+ I
2619
+ 48
2620
+ I
2621
+ 86
2622
+ I
2623
+ 56
2624
+ I
2625
+ 8b
2626
+ I
2627
+ 64
2305
2628
  x
2306
2629
  48
2307
2630
  /Users/tony/src/celluloid/lib/celluloid/actor.rb
@@ -2457,7 +2780,7 @@ x
2457
2780
  13
2458
2781
  __start_actor
2459
2782
  i
2460
- 109
2783
+ 136
2461
2784
  95
2462
2785
  19
2463
2786
  1
@@ -2524,7 +2847,34 @@ i
2524
2847
  2
2525
2848
  47
2526
2849
  9
2850
+ 79
2851
+ 47
2852
+ 49
2853
+ 3
2854
+ 0
2855
+ 13
2856
+ 47
2857
+ 49
2858
+ 4
2859
+ 0
2860
+ 15
2861
+ 8
2527
2862
  82
2863
+ 49
2864
+ 2
2865
+ 0
2866
+ 38
2867
+ 11
2868
+ 15
2869
+ 45
2870
+ 12
2871
+ 13
2872
+ 13
2873
+ 71
2874
+ 2
2875
+ 47
2876
+ 9
2877
+ 109
2528
2878
  47
2529
2879
  49
2530
2880
  3
@@ -2539,7 +2889,7 @@ i
2539
2889
  2
2540
2890
  15
2541
2891
  8
2542
- 88
2892
+ 115
2543
2893
  5
2544
2894
  39
2545
2895
  5
@@ -2547,25 +2897,25 @@ i
2547
2897
  2
2548
2898
  2
2549
2899
  38
2550
- 11
2900
+ 14
2551
2901
  15
2552
2902
  2
2553
2903
  38
2554
- 12
2904
+ 15
2555
2905
  15
2556
2906
  45
2557
- 13
2558
- 14
2907
+ 16
2908
+ 17
2559
2909
  56
2560
- 15
2910
+ 18
2561
2911
  50
2562
2912
  2
2563
2913
  0
2564
2914
  38
2565
- 16
2915
+ 19
2566
2916
  15
2567
2917
  39
2568
- 11
2918
+ 14
2569
2919
  11
2570
2920
  I
2571
2921
  6
@@ -2580,7 +2930,7 @@ I
2580
2930
  I
2581
2931
  0
2582
2932
  p
2583
- 17
2933
+ 20
2584
2934
  x
2585
2935
  7
2586
2936
  Mailbox
@@ -2595,25 +2945,32 @@ x
2595
2945
  10
2596
2946
  initialize
2597
2947
  x
2598
- 8
2599
- @mailbox
2948
+ 9
2949
+ @_mailbox
2600
2950
  x
2601
2951
  5
2602
2952
  Links
2603
2953
  n
2604
2954
  x
2605
- 6
2606
- @links
2955
+ 7
2956
+ @_links
2957
+ x
2958
+ 7
2959
+ Signals
2960
+ n
2961
+ x
2962
+ 9
2963
+ @_signals
2607
2964
  x
2608
2965
  10
2609
2966
  ActorProxy
2610
2967
  n
2611
2968
  x
2612
- 6
2613
- @proxy
2969
+ 7
2970
+ @_proxy
2614
2971
  x
2615
- 8
2616
- @running
2972
+ 9
2973
+ @_running
2617
2974
  x
2618
2975
  6
2619
2976
  Thread
@@ -2665,11 +3022,11 @@ p
2665
3022
  I
2666
3023
  0
2667
3024
  I
2668
- 8a
3025
+ 9b
2669
3026
  I
2670
3027
  4
2671
3028
  I
2672
- 8b
3029
+ 9c
2673
3030
  I
2674
3031
  8
2675
3032
  x
@@ -2678,40 +3035,44 @@ x
2678
3035
  p
2679
3036
  0
2680
3037
  x
2681
- 7
2682
- @thread
3038
+ 8
3039
+ @_thread
2683
3040
  p
2684
- 15
3041
+ 17
2685
3042
  I
2686
3043
  -1
2687
3044
  I
2688
- 83
3045
+ 93
2689
3046
  I
2690
3047
  4
2691
3048
  I
2692
- 84
3049
+ 94
2693
3050
  I
2694
3051
  1f
2695
3052
  I
2696
- 85
3053
+ 95
2697
3054
  I
2698
3055
  3a
2699
3056
  I
2700
- 86
3057
+ 96
2701
3058
  I
2702
- 5b
3059
+ 55
2703
3060
  I
2704
- 87
3061
+ 97
2705
3062
  I
2706
- 5f
3063
+ 76
2707
3064
  I
2708
- 89
3065
+ 98
2709
3066
  I
2710
- 6a
3067
+ 7a
2711
3068
  I
2712
- 8e
3069
+ 9a
3070
+ I
3071
+ 85
3072
+ I
3073
+ 9f
2713
3074
  I
2714
- 6d
3075
+ 88
2715
3076
  x
2716
3077
  48
2717
3078
  /Users/tony/src/celluloid/lib/celluloid/actor.rb
@@ -2825,33 +3186,33 @@ x
2825
3186
  11
2826
3187
  actor_proxy
2827
3188
  x
2828
- 6
2829
- @proxy
3189
+ 7
3190
+ @_proxy
2830
3191
  n
2831
3192
  x
2832
3193
  7
2833
3194
  mailbox
2834
3195
  x
2835
- 8
2836
- @mailbox
3196
+ 9
3197
+ @_mailbox
2837
3198
  p
2838
3199
  9
2839
3200
  I
2840
3201
  -1
2841
3202
  I
2842
- 92
3203
+ a3
2843
3204
  I
2844
3205
  0
2845
3206
  I
2846
- 93
3207
+ a4
2847
3208
  I
2848
3209
  11
2849
3210
  I
2850
- 94
3211
+ a5
2851
3212
  I
2852
3213
  23
2853
3214
  I
2854
- 95
3215
+ a6
2855
3216
  I
2856
3217
  35
2857
3218
  x
@@ -3019,8 +3380,8 @@ x
3019
3380
  8
3020
3381
  allocate
3021
3382
  x
3022
- 6
3023
- @proxy
3383
+ 7
3384
+ @_proxy
3024
3385
  x
3025
3386
  10
3026
3387
  initialize
@@ -3053,23 +3414,23 @@ p
3053
3414
  I
3054
3415
  -1
3055
3416
  I
3056
- 99
3417
+ aa
3057
3418
  I
3058
3419
  0
3059
3420
  I
3060
- 9a
3421
+ ab
3061
3422
  I
3062
3423
  7
3063
3424
  I
3064
- a0
3425
+ b1
3065
3426
  I
3066
3427
  e
3067
3428
  I
3068
- 9a
3429
+ ab
3069
3430
  I
3070
3431
  12
3071
3432
  I
3072
- 9b
3433
+ ac
3073
3434
  I
3074
3435
  36
3075
3436
  I
@@ -3077,19 +3438,19 @@ I
3077
3438
  I
3078
3439
  3b
3079
3440
  I
3080
- 9c
3441
+ ad
3081
3442
  I
3082
3443
  48
3083
3444
  I
3084
- 9e
3445
+ af
3085
3446
  I
3086
3447
  49
3087
3448
  I
3088
- 9c
3449
+ ad
3089
3450
  I
3090
3451
  4c
3091
3452
  I
3092
- 9d
3453
+ ae
3093
3454
  I
3094
3455
  5b
3095
3456
  I
@@ -3097,11 +3458,11 @@ I
3097
3458
  I
3098
3459
  62
3099
3460
  I
3100
- 9f
3461
+ b0
3101
3462
  I
3102
3463
  6e
3103
3464
  I
3104
- 9f
3465
+ b0
3105
3466
  I
3106
3467
  79
3107
3468
  x
@@ -3123,7 +3484,7 @@ x
3123
3484
  18
3124
3485
  __process_messages
3125
3486
  i
3126
- 260
3487
+ 241
3127
3488
  44
3128
3489
  43
3129
3490
  0
@@ -3137,7 +3498,7 @@ i
3137
3498
  39
3138
3499
  2
3139
3500
  9
3140
- 258
3501
+ 239
3141
3502
  26
3142
3503
  93
3143
3504
  0
@@ -3290,7 +3651,7 @@ i
3290
3651
  165
3291
3652
  1
3292
3653
  8
3293
- 254
3654
+ 235
3294
3655
  13
3295
3656
  45
3296
3657
  19
@@ -3356,26 +3717,7 @@ i
3356
3717
  231
3357
3718
  1
3358
3719
  8
3359
- 254
3360
- 13
3361
- 45
3362
- 23
3363
- 24
3364
- 12
3365
- 49
3366
- 7
3367
- 1
3368
- 9
3369
- 252
3370
- 15
3371
- 20
3372
- 1
3373
- 5
3374
- 49
3375
- 25
3376
- 1
3377
- 8
3378
- 254
3720
+ 235
3379
3721
  15
3380
3722
  1
3381
3723
  15
@@ -3396,7 +3738,7 @@ I
3396
3738
  0
3397
3739
  n
3398
3740
  p
3399
- 26
3741
+ 23
3400
3742
  x
3401
3743
  4
3402
3744
  Hash
@@ -3404,11 +3746,11 @@ x
3404
3746
  16
3405
3747
  new_from_literal
3406
3748
  x
3407
- 8
3408
- @running
3749
+ 9
3750
+ @_running
3409
3751
  x
3410
- 8
3411
- @mailbox
3752
+ 9
3753
+ @_mailbox
3412
3754
  x
3413
3755
  7
3414
3756
  receive
@@ -3475,11 +3817,11 @@ p
3475
3817
  I
3476
3818
  0
3477
3819
  I
3478
- ab
3820
+ bc
3479
3821
  I
3480
3822
  4
3481
3823
  I
3482
- ac
3824
+ bd
3483
3825
  I
3484
3826
  d
3485
3827
  x
@@ -3500,8 +3842,8 @@ x
3500
3842
  3
3501
3843
  []=
3502
3844
  x
3503
- 8
3504
- SyncCall
3845
+ 4
3846
+ Call
3505
3847
  n
3506
3848
  n
3507
3849
  M
@@ -3555,11 +3897,11 @@ p
3555
3897
  I
3556
3898
  0
3557
3899
  I
3558
- b8
3900
+ c9
3559
3901
  I
3560
3902
  4
3561
3903
  I
3562
- b9
3904
+ ca
3563
3905
  I
3564
3906
  c
3565
3907
  x
@@ -3577,31 +3919,24 @@ call
3577
3919
  x
3578
3920
  6
3579
3921
  delete
3580
- x
3581
- 9
3582
- AsyncCall
3583
- n
3584
- x
3585
- 8
3586
- dispatch
3587
3922
  p
3588
- 65
3923
+ 61
3589
3924
  I
3590
3925
  -1
3591
3926
  I
3592
- a3
3927
+ b4
3593
3928
  I
3594
3929
  0
3595
3930
  I
3596
- a4
3931
+ b5
3597
3932
  I
3598
3933
  a
3599
3934
  I
3600
- a6
3935
+ b7
3601
3936
  I
3602
3937
  e
3603
3938
  I
3604
- a8
3939
+ b9
3605
3940
  I
3606
3941
  1f
3607
3942
  I
@@ -3609,27 +3944,27 @@ I
3609
3944
  I
3610
3945
  24
3611
3946
  I
3612
- a9
3947
+ ba
3613
3948
  I
3614
3949
  31
3615
3950
  I
3616
- b3
3951
+ c4
3617
3952
  I
3618
3953
  32
3619
3954
  I
3620
- a9
3955
+ ba
3621
3956
  I
3622
3957
  35
3623
3958
  I
3624
- aa
3959
+ bb
3625
3960
  I
3626
3961
  40
3627
3962
  I
3628
- af
3963
+ c0
3629
3964
  I
3630
3965
  48
3631
3966
  I
3632
- b0
3967
+ c1
3633
3968
  I
3634
3969
  5f
3635
3970
  I
@@ -3637,7 +3972,7 @@ I
3637
3972
  I
3638
3973
  60
3639
3974
  I
3640
- b2
3975
+ c3
3641
3976
  I
3642
3977
  6a
3643
3978
  I
@@ -3645,23 +3980,23 @@ I
3645
3980
  I
3646
3981
  6e
3647
3982
  I
3648
- b5
3983
+ c6
3649
3984
  I
3650
3985
  70
3651
3986
  I
3652
- b6
3987
+ c7
3653
3988
  I
3654
3989
  7b
3655
3990
  I
3656
- b7
3991
+ c8
3657
3992
  I
3658
3993
  86
3659
3994
  I
3660
- bc
3995
+ cd
3661
3996
  I
3662
3997
  8e
3663
3998
  I
3664
- bd
3999
+ ce
3665
4000
  I
3666
4001
  a5
3667
4002
  I
@@ -3669,23 +4004,23 @@ I
3669
4004
  I
3670
4005
  a7
3671
4006
  I
3672
- be
4007
+ cf
3673
4008
  I
3674
4009
  b2
3675
4010
  I
3676
- bf
4011
+ d0
3677
4012
  I
3678
4013
  bf
3679
4014
  I
3680
- c1
4015
+ d2
3681
4016
  I
3682
4017
  c3
3683
4018
  I
3684
- c2
4019
+ d3
3685
4020
  I
3686
4021
  cd
3687
4022
  I
3688
- c3
4023
+ d4
3689
4024
  I
3690
4025
  e4
3691
4026
  I
@@ -3693,29 +4028,21 @@ I
3693
4028
  I
3694
4029
  e6
3695
4030
  I
3696
- c1
4031
+ d2
3697
4032
  I
3698
4033
  e7
3699
4034
  I
3700
4035
  0
3701
4036
  I
3702
- e9
3703
- I
3704
- c5
3705
- I
3706
- f4
4037
+ ea
3707
4038
  I
3708
4039
  c6
3709
4040
  I
3710
- fd
3711
- I
3712
- b5
3713
- I
3714
- fe
4041
+ eb
3715
4042
  I
3716
4043
  0
3717
4044
  I
3718
- 104
4045
+ f1
3719
4046
  x
3720
4047
  48
3721
4048
  /Users/tony/src/celluloid/lib/celluloid/actor.rb
@@ -3841,23 +4168,23 @@ p
3841
4168
  I
3842
4169
  -1
3843
4170
  I
3844
- cc
4171
+ db
3845
4172
  I
3846
4173
  0
3847
4174
  I
3848
- cd
4175
+ dc
3849
4176
  I
3850
4177
  a
3851
4178
  I
3852
- ce
4179
+ dd
3853
4180
  I
3854
4181
  e
3855
4182
  I
3856
- cf
4183
+ de
3857
4184
  I
3858
4185
  22
3859
4186
  I
3860
- ce
4187
+ dd
3861
4188
  I
3862
4189
  23
3863
4190
  I
@@ -3865,7 +4192,7 @@ I
3865
4192
  I
3866
4193
  24
3867
4194
  I
3868
- d4
4195
+ e3
3869
4196
  I
3870
4197
  38
3871
4198
  I
@@ -4021,8 +4348,8 @@ x
4021
4348
  8
4022
4349
  allocate
4023
4350
  x
4024
- 6
4025
- @proxy
4351
+ 7
4352
+ @_proxy
4026
4353
  x
4027
4354
  10
4028
4355
  initialize
@@ -4044,15 +4371,15 @@ p
4044
4371
  I
4045
4372
  -1
4046
4373
  I
4047
- d8
4374
+ e7
4048
4375
  I
4049
4376
  0
4050
4377
  I
4051
- d9
4378
+ e8
4052
4379
  I
4053
4380
  f
4054
4381
  I
4055
- da
4382
+ e9
4056
4383
  I
4057
4384
  37
4058
4385
  I
@@ -4060,19 +4387,19 @@ I
4060
4387
  I
4061
4388
  3c
4062
4389
  I
4063
- db
4390
+ ea
4064
4391
  I
4065
4392
  49
4066
4393
  I
4067
- dd
4394
+ ec
4068
4395
  I
4069
4396
  4a
4070
4397
  I
4071
- db
4398
+ ea
4072
4399
  I
4073
4400
  4d
4074
4401
  I
4075
- dc
4402
+ eb
4076
4403
  I
4077
4404
  5f
4078
4405
  I
@@ -4130,14 +4457,14 @@ n
4130
4457
  p
4131
4458
  4
4132
4459
  x
4133
- 8
4134
- @mailbox
4460
+ 9
4461
+ @_mailbox
4135
4462
  x
4136
4463
  8
4137
4464
  shutdown
4138
4465
  x
4139
- 6
4140
- @links
4466
+ 7
4467
+ @_links
4141
4468
  x
4142
4469
  10
4143
4470
  send_event
@@ -4146,15 +4473,15 @@ p
4146
4473
  I
4147
4474
  -1
4148
4475
  I
4149
- e0
4476
+ ef
4150
4477
  I
4151
4478
  0
4152
4479
  I
4153
- e1
4480
+ f0
4154
4481
  I
4155
4482
  6
4156
4483
  I
4157
- e2
4484
+ f1
4158
4485
  I
4159
4486
  e
4160
4487
  x
@@ -4319,19 +4646,19 @@ p
4319
4646
  I
4320
4647
  -1
4321
4648
  I
4322
- e7
4649
+ f6
4323
4650
  I
4324
4651
  12
4325
4652
  I
4326
- e8
4653
+ f7
4327
4654
  I
4328
4655
  30
4329
4656
  I
4330
- e9
4657
+ f8
4331
4658
  I
4332
4659
  41
4333
4660
  I
4334
- ea
4661
+ f9
4335
4662
  I
4336
4663
  57
4337
4664
  I
@@ -4354,35 +4681,35 @@ p
4354
4681
  I
4355
4682
  2
4356
4683
  I
4357
- 83
4684
+ 93
4358
4685
  I
4359
4686
  10
4360
4687
  I
4361
- 92
4688
+ a3
4362
4689
  I
4363
4690
  1e
4364
4691
  I
4365
- 99
4692
+ aa
4366
4693
  I
4367
4694
  2c
4368
4695
  I
4369
- a3
4696
+ b4
4370
4697
  I
4371
4698
  3a
4372
4699
  I
4373
- cc
4700
+ db
4374
4701
  I
4375
4702
  48
4376
4703
  I
4377
- d8
4704
+ e7
4378
4705
  I
4379
4706
  56
4380
4707
  I
4381
- e0
4708
+ ef
4382
4709
  I
4383
4710
  64
4384
4711
  I
4385
- e7
4712
+ f6
4386
4713
  I
4387
4714
  72
4388
4715
  x
@@ -4487,23 +4814,23 @@ p
4487
4814
  I
4488
4815
  -1
4489
4816
  I
4490
- ee
4817
+ fd
4491
4818
  I
4492
4819
  0
4493
4820
  I
4494
- ef
4821
+ fe
4495
4822
  I
4496
4823
  9
4497
4824
  I
4498
- f0
4825
+ ff
4499
4826
  I
4500
4827
  14
4501
4828
  I
4502
- f1
4829
+ 100
4503
4830
  I
4504
4831
  1f
4505
4832
  I
4506
- f2
4833
+ 101
4507
4834
  I
4508
4835
  2a
4509
4836
  x
@@ -4515,29 +4842,25 @@ x
4515
4842
  5
4516
4843
  klass
4517
4844
  p
4518
- 11
4845
+ 9
4519
4846
  I
4520
4847
  2
4521
4848
  I
4522
- 30
4523
- I
4524
- a
4525
- I
4526
- 33
4849
+ 31
4527
4850
  I
4528
- 24
4851
+ 1c
4529
4852
  I
4530
- 62
4853
+ 60
4531
4854
  I
4532
- 3e
4855
+ 36
4533
4856
  I
4534
- 81
4857
+ 91
4535
4858
  I
4536
- 58
4859
+ 50
4537
4860
  I
4538
- ee
4861
+ fd
4539
4862
  I
4540
- 63
4863
+ 5b
4541
4864
  x
4542
4865
  48
4543
4866
  /Users/tony/src/celluloid/lib/celluloid/actor.rb