Author: toad
Date: 2007-09-08 15:19:21 +0000 (Sat, 08 Sep 2007)
New Revision: 15039
Modified:
trunk/freenet/src/freenet/pluginmanager/PluginHandler.java
trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
Log:
More de-uglification: PluginStarter must know its PluginInfoWrapper.
Modified: trunk/freenet/src/freenet/pluginmanager/PluginHandler.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginHandler.java 2007-09-08
15:11:37 UTC (rev 15038)
+++ trunk/freenet/src/freenet/pluginmanager/PluginHandler.java 2007-09-08
15:19:21 UTC (rev 15039)
@@ -20,8 +20,9 @@
* @param plug
*/
public static PluginInfoWrapper startPlugin(PluginManager pm, String
filename, FredPlugin plug, PluginRespirator pr) {
- final PluginStarter ps = new PluginStarter(pr);
- final PluginInfoWrapper pi = new PluginInfoWrapper(plug, ps,
filename);
+ final PluginInfoWrapper pi = new PluginInfoWrapper(plug,
filename);
+ final PluginStarter ps = new PluginStarter(pr, pi);
+ pi.setThread(ps);
// This is an ugly trick... sorry ;o)
// The thread still exists as an identifier, but is never
started if the
@@ -45,9 +46,11 @@
private Object plugin = null;
private PluginRespirator pr;
private PluginManager pm = null;
+ final PluginInfoWrapper pi;
- public PluginStarter(PluginRespirator pr) {
+ public PluginStarter(PluginRespirator pr, PluginInfoWrapper pi)
{
this.pr = pr;
+ this.pi = pi;
setDaemon(true);
}
Modified: trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
2007-09-08 15:11:37 UTC (rev 15038)
+++ trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
2007-09-08 15:19:21 UTC (rev 15039)
@@ -22,15 +22,13 @@
private HashSet toadletLinks=new HashSet();
//public String
- public PluginInfoWrapper(FredPlugin plug, Thread ps, String filename) {
+ public PluginInfoWrapper(FredPlugin plug, String filename) {
if (fedPluginThread) return;
className = plug.getClass().toString();
- thread = ps;
this.plug = plug;
this.filename = filename;
- threadName = 'p' + className.replaceAll("^class ", "") + '_' +
ps.hashCode();
+ threadName = 'p' + className.replaceAll("^class ", "") + '_' +
hashCode();
start = System.currentTimeMillis();
- ps.setName(threadName);
fedPluginThread = true;
isPproxyPlugin = (plug instanceof FredPluginHTTP);
isThreadlessPlugin = (plug instanceof FredPluginThreadless);
@@ -38,6 +36,13 @@
isPortForwardPlugin = (plug instanceof FredPluginPortForward);
}
+ void setThread(Thread ps) {
+ if(thread != null)
+ throw new IllegalStateException("Already set a thread");
+ thread = ps;
+ thread.setName(threadName);
+ }
+
public String toString() {
return "ID: \"" +threadName + "\", Name: "+ className +",
Started: " + (new Date(start)).toString();
}