Remote Debugging Protocol: Difference between revisions

→‎Interrupting a Thread: Add "Exiting Threads" section.
(Add sections on running, pausing, resuming, and interrupting threads.)
(→‎Interrupting a Thread: Add "Exiting Threads" section.)
Line 293: Line 293:


This indicates that the thread exited before receiving the client's
This indicates that the thread exited before receiving the client's
<tt>interrupt</tt> packet, and is now in the <b>Exited</b> state. The
<tt>interrupt</tt> packet, and is now in the <b>Exited</b> state. See
client should send a <tt>release</tt> packet, as described above in
[[#Exiting_Threads|Exiting Threads]], below.
[[#Detaching_From_a_Thread]].
 
== Exiting Threads ==
 
When a thread in the <b>Running</b> state exits, it sends a packet of the following form:
 
  { "from":<i>thread</i>, "type":"exited" }
 
At this point, the thread can no longer be manipulated by the client, and most of the thread's resources may be freed; however, the thread actor name must remain alive, to handle stray <tt>interrupt</tt> and <tt>detach</tt> packets. To allow the last trace of the thread to be freed, the client should send a packet of the following form:
 
  { "to":<i>thread</i>, "type":"release" }
 
This allows the thread actor name, <i>thread</i>, to be reused for other actors.


= Events =
= Events =
Confirmed users
497

edits