In the case of 'interrupt -a&' command gdb sends only one packet to stop all threads as $vCont;t#b9... But in case of 'thread apply all interrupt&' GDB issues indiviual packets for each thread.I think that In non-stop mode 'interrupt -a&' and 'thread apply all interrupt&' commands all equals but time efficiency of later command is less. Also. If user issues a command like 'thread apply all interrupt -a&' GDB accepts it and GDB will stop all threads on first vcount;t packets but due to loops, it sends vcount;t packet for all remaining threads altought gdb has already stop all thread so IMO it is a bug.