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

[220126] [dstore][api][breaking] executeThread() api for ISystemService

This commit is contained in:
David McKnight 2008-03-29 15:35:06 +00:00
parent eda29e5918
commit 43d5a99638
2 changed files with 36 additions and 1 deletions

View file

@ -26,4 +26,13 @@ public interface ISystemService
* @param client the object of the client
*/
public void setThreadSecurity(Client client);
/**
* This method is used to execute run() in a thread assigned
* from thread pools.
*
* @param securedThread the securedThread object that implements
* Runnable.
*/
public void executeThread(SecuredThread securedThread);
}

View file

@ -132,6 +132,32 @@ public class SecuredThread extends Thread
super.run();
}
/**
* When start() is called, a check is made to see if there is an ISystemService.
* If there is, the <code>ISystemService.executeThread(SecuredThread)</code> is called.
* In this case, the run() method is invoked in a thread assigned from the running
* work threads
* If there isn't, the <code>super.start()</code> is called.
* In this case. the run() method is invoked as a new thread.
*/
public void start()
{
try
{
ISystemService systemService = SystemServiceManager.getInstance().getSystemService();
if (systemService != null){
systemService.executeThread(this);
}
else
{
super.start();
}
}
catch(Throwable e)
{
e.printStackTrace(new PrintWriter(System.err));
}
}
}