File tree 1 file changed +12
-1
lines changed
1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -128,6 +128,8 @@ def initialize
128
128
@obj_map = { } # { object_id => ... } for CDP
129
129
130
130
@tp_thread_begin = nil
131
+ @tp_thread_end = nil
132
+
131
133
@commands = { }
132
134
@unsafe_context = false
133
135
@@ -169,8 +171,9 @@ def activate ui = nil, on_fork: false
169
171
@ui = ui if ui
170
172
171
173
@tp_thread_begin &.disable
174
+ @tp_thread_end &.disable
172
175
@tp_thread_begin = nil
173
-
176
+ @tp_thread_end = nil
174
177
@ui . activate self , on_fork : on_fork
175
178
176
179
q = Queue . new
@@ -192,6 +195,11 @@ def activate ui = nil, on_fork: false
192
195
end
193
196
@tp_thread_begin . enable
194
197
198
+ @tp_thread_end = TracePoint . new ( :thread_end ) do |tp |
199
+ @th_clients . delete ( Thread . current )
200
+ end
201
+ @tp_thread_end . enable
202
+
195
203
# session start
196
204
q << true
197
205
session_server_main
@@ -205,6 +213,7 @@ def deactivate
205
213
@thread_stopper . disable
206
214
@tp_load_script . disable
207
215
@tp_thread_begin . disable
216
+ @tp_thread_end . disable
208
217
@bps . each_value { |bp | bp . disable }
209
218
@th_clients . each_value { |thc | thc . close }
210
219
@tracers . values . each { |t | t . disable }
@@ -219,11 +228,13 @@ def reset_ui ui
219
228
220
229
# activate new ui
221
230
@tp_thread_begin . disable
231
+ @tp_thread_end . disable
222
232
@ui . activate self
223
233
if @ui . respond_to? ( :reader_thread ) && thc = get_thread_client ( @ui . reader_thread )
224
234
thc . mark_as_management
225
235
end
226
236
@tp_thread_begin . enable
237
+ @tp_thread_end . enable
227
238
end
228
239
229
240
def pop_event
You can’t perform that action at this time.
0 commit comments