diff options
author | eutarass | 2010-06-24 22:44:57 +0000 |
---|---|---|
committer | eutarass | 2010-06-24 22:44:57 +0000 |
commit | f07d0dcea8d2f8172decfdc4233034e3044db1c4 (patch) | |
tree | 34b1fd6ed579ea5b67700342b347362aa27a1009 /plugins/org.eclipse.tm.tcf.core | |
parent | 742274476a9e1a08117e16c1cede34038b0306dc (diff) | |
download | org.eclipse.tcf-f07d0dcea8d2f8172decfdc4233034e3044db1c4.tar.gz org.eclipse.tcf-f07d0dcea8d2f8172decfdc4233034e3044db1c4.tar.xz org.eclipse.tcf-f07d0dcea8d2f8172decfdc4233034e3044db1c4.zip |
TCF Debugger: improved model deltas generation logic
Diffstat (limited to 'plugins/org.eclipse.tm.tcf.core')
-rw-r--r-- | plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/internal/tcf/services/local/LocatorService.java | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/internal/tcf/services/local/LocatorService.java b/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/internal/tcf/services/local/LocatorService.java index ffaf21900..03a940fcb 100644 --- a/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/internal/tcf/services/local/LocatorService.java +++ b/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/internal/tcf/services/local/LocatorService.java @@ -233,26 +233,32 @@ public class LocatorService implements ILocator { private final Thread input_thread = new Thread() { public void run() { - for (;;) { - DatagramSocket socket = LocatorService.this.socket; - try { - final DatagramPacket p = new DatagramPacket(inp_buf, inp_buf.length); - socket.receive(p); - Protocol.invokeAndWait(new Runnable() { - public void run() { - handleDatagramPacket(p); - } - }); - } - catch (IllegalStateException x) { - // TCF event dispatch is shutdown - return; - } - catch (Exception x) { - if (socket != LocatorService.this.socket) continue; - log("Cannot read from datagram socket at port " + socket.getLocalPort(), x); + try { + for (;;) { + DatagramSocket socket = LocatorService.this.socket; + try { + final DatagramPacket p = new DatagramPacket(inp_buf, inp_buf.length); + socket.receive(p); + Protocol.invokeAndWait(new Runnable() { + public void run() { + handleDatagramPacket(p); + } + }); + } + catch (IllegalStateException x) { + // TCF event dispatch is shutdown + return; + } + catch (Exception x) { + if (socket != LocatorService.this.socket) continue; + log("Cannot read from datagram socket at port " + socket.getLocalPort(), x); + sleep(2000); + } } } + catch (Throwable x) { + log("Unhandled exception in socket reading thread", x); + } } }; |