<div dir="ltr">Hi Gary,<div><br></div><div>Looks good to me (not an official reviewer though),<div>Jc</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 23, 2018 at 11:08 AM Gary Adams <<a href="mailto:gary.adams@oracle.com">gary.adams@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Could I get a second reviewer for this change.<br>
<br>
On 10/15/18, 3:16 PM, Chris Plummer wrote:<br>
> Hi Gary,<br>
><br>
> I think the simple prompt is meant to indicate that execution is <br>
> suspended, but there is no current thread. I don't think that is the <br>
> case here, so probably best not to use your alternate suggestion of a <br>
> simple prompt. There doesn't seem to be much purpose in the first <br>
> prompt being printed. You also seem to just be handling the situation <br>
> the same as we do for other async commands, so looks good to me.<br>
><br>
> thanks,<br>
><br>
> Chris<br>
><br>
> On 10/15/18 10:44 AM, Gary Adams wrote:<br>
>> kill ... killing ... killed <prompt><br>
>><br>
>> This bug was filed to cover the issue with the kill002 test,<br>
>> which sometimes did not consume enough of the reply<br>
>> messages after the wait for the "killed" message is observed.<br>
>><br>
>> When a "kill" command is issued it is processed as an asynchronous<br>
>> command. The "killing" message is presented before the action is<br>
>> evaluated, and the "killed" message is presented after the evaluation<br>
>> returns. When the asynchronous action is completed a prompt is<br>
>> displayed after restoring the current thread info when the action<br>
>> was requested.<br>
>><br>
>>   Issue: <a href="https://bugs.openjdk.java.net/browse/JDK-8211013" rel="noreferrer" target="_blank">https://bugs.openjdk.java.net/browse/JDK-8211013</a><br>
>><br>
>> Proposed fix:<br>
>><br>
>> diff --git <br>
>> a/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java <br>
>> b/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java<br>
>> --- a/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java<br>
>> +++ b/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java<br>
>> @@ -488,6 +488,7 @@<br>
>>                              showPrompt = false;<br>
>>                              evaluator.commandNext();<br>
>>                          } else if (cmd.equals("kill")) {<br>
>> +                            showPrompt = false;        // <br>
>> asynchronous command<br>
>>                              evaluator.commandKill(t);<br>
>>                          } else if (cmd.equals("interrupt")) {<br>
>>                              evaluator.commandInterrupt(t);<br>
>><br>
>> Sample output:<br>
>> ...<br>
>> main[1] threads<br>
>> Group system:<br>
>>   (java.lang.ref.Reference$ReferenceHandler)0x172 Reference Handler <br>
>> running<br>
>>   (java.lang.ref.Finalizer$FinalizerThread)0x173 Finalizer         <br>
>> cond. waiting<br>
>>   (java.lang.Thread)0x174                         Signal Dispatcher <br>
>> running<br>
>> Group main:<br>
>>   (java.lang.Thread)0x1 main              running (at breakpoint)<br>
>>   (nsk.jdb.kill.kill002.MyThread)0x2c9 Thread-0          cond. waiting<br>
>>   (nsk.jdb.kill.kill002.MyThread)0x2e2 Thread-1          cond. waiting<br>
>>   (nsk.jdb.kill.kill002.MyThread)0x2e3 Thread-2          cond. waiting<br>
>>   (nsk.jdb.kill.kill002.MyThread)0x2e4 Thread-3          cond. waiting<br>
>>   (nsk.jdb.kill.kill002.MyThread)0x2e5 Thread-4          cond. waiting<br>
>> Group InnocuousThreadGroup:<br>
>>   (jdk.internal.misc.InnocuousThread)0x19a Common-Cleaner    cond. <br>
>> waiting<br>
>> main[1] kill 0x2c9 nsk.jdb.kill.kill002.kill002a.exceptions[0]<br>
>> killing thread: Thread-0<br>
>> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-0', id=713) <br>
>> killed<br>
>> main[1] kill 0x2e2 nsk.jdb.kill.kill002.kill002a.exceptions[1]<br>
>> killing thread: Thread-1<br>
>> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-1', id=738) <br>
>> killed<br>
>> main[1] kill 0x2e3 nsk.jdb.kill.kill002.kill002a.exceptions[2]<br>
>> killing thread: Thread-2<br>
>> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-2', id=739) <br>
>> killed<br>
>> main[1] kill 0x2e4 nsk.jdb.kill.kill002.kill002a.exceptions[3]<br>
>> killing thread: Thread-3<br>
>> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-3', id=740) <br>
>> killed<br>
>> main[1] kill 0x2e5 nsk.jdb.kill.kill002.kill002a.exceptions[4]<br>
>> killing thread: Thread-4<br>
>> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-4', id=741) <br>
>> killed<br>
>> main[1] threads<br>
>> ...<br>
>><br>
>> An alternate proposal would include the simple prompt. e.g.<br>
>> ...<br>
>> main[1] kill 0x2c9 nsk.jdb.kill.kill002.kill002a.exceptions[0]<br>
>> > killing thread: Thread-0<br>
>> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-0', id=713) <br>
>> killed<br>
>> main[1] kill 0x2e2 nsk.jdb.kill.kill002.kill002a.exceptions[1]<br>
>> > killing thread: Thread-1<br>
>><br>
>> Test in progress.<br>
><br>
><br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><br></div>Thanks,<div>Jc</div></div></div>