1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-02 22:55:26 +02:00

[289234][multithread][api] Reset and Restart KeepAliveRequestThread

This commit is contained in:
David McKnight 2010-12-15 16:38:25 +00:00
parent 92a611b86c
commit 20b5a96ef0
4 changed files with 44 additions and 3 deletions

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.dstore.core
Bundle-Version: 3.2.100.qualifier
Bundle-Version: 3.3.100.qualifier
Bundle-Activator: org.eclipse.dstore.core.Activator
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2002, 2009 IBM Corporation and others.
* Copyright (c) 2002, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -18,6 +18,7 @@
* Noriaki Takatsu (IBM) - [257666] [multithread] TCP/IP socket connection is not closed
* David McKnight (IBM) - [257666] modified original patch to simplify
* Noriaki Takatsu (IBM) - [283656] [dstore][multithread] Serviceability issue
* Noriaki Takatsu (IBM) - [289234][multithread][api] Reset and Restart KeepAliveRequestThread
*******************************************************************************/
package org.eclipse.dstore.core.server;
@ -118,5 +119,17 @@ public class ServerReceiver extends Receiver
System.out.println(IOe);
}
}
/**
* Interrupt the current KeepAliveRequest thread and restart
* the KeepAliveRequest thread with the specified timeout
*
* @param timeout when the KeepAliveRequest thread is expired
* @since 3.3
*/
public void resetKeepAliveRequest(long timeout)
{
xmlParser().resetKeepAliveRequest(timeout, socket());
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2002, 2009 IBM Corporation and others.
* Copyright (c) 2002, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -17,6 +17,7 @@
* Noriaki Takatsu (IBM) - [220126] [dstore][api][breaking] Single process server for multiple clients
* David McKnight (IBM) - [225507][api][breaking] RSE dstore API leaks non-API types
* David McKnight (IBM) - [226561] [apidoc] Add API markup to RSE Javadocs where extend / implement is allowed
* Noriaki Takatsu (IBM) - [289234][multithread][api] Reset and Restart KeepAliveRequestThread
*******************************************************************************/
package org.eclipse.dstore.core.util;
@ -184,6 +185,16 @@ public abstract class Receiver extends SecuredThread implements IDataStorePrefer
{
return _socket;
}
/**
* Returns the associated xml parser
* @return the xml parser
* @since 3.3
*/
public XMLparser xmlParser()
{
return _xmlParser;
}
/**
* Implemented to provide a means of handling received input

View file

@ -20,6 +20,7 @@
* David McKnight (IBM) [305218][dstore] problem reading double-byte characters through data socket layer
* David McKnight (IBM) [307541][dstore] fix for Bug 305218 breaks RDz connections
* David McKnight (IBM) [322407][dstore] Connection dropped automatically when idle
* Noriaki Takatsu (IBM) - [289234][multithread][api] Reset and Restart KeepAliveRequestThread
*******************************************************************************/
package org.eclipse.dstore.internal.core.util;
@ -1118,4 +1119,20 @@ public class XMLparser
}
}
/**
* Interrupt the current KeepAliveRequest thread and restart
* the KeepAliveRequest thread with the specified timeout
*
* @param timeout when the KeepAliveRequest thread is expired
* @param socket to wait for
*
* @since 3.3
*/
public void resetKeepAliveRequest(long timeout, Socket socket) {
if (_kart != null && _kart.isAlive()){
_kart.interrupt();
}
_kart = new KeepAliveRequestThread(timeout, socket);
_kart.start();
}
}