On Monday 08 July 2002 01:21 pm, Marcus Crafter wrote: > One of my ThreadSafe components wasn't being start()ed until I > actually looked it up. If I forced sync init, everything worked > fine, but with async init, it didn't.
Just guessing here, but could another component have stalled the queue? > Ok, so you created a command queue instead of using the default > one that's created if its not specified. Would be great if you > could post the code how its created & registered with the > ThreadManager ? :) private ContextBuilder createContextBuilder() throws Exception { final ContextBuilder builder = new ContextBuilder( createContext() ); final CommandManager cm = new CommandManager(); this.m_containerConfiguration = ConfigurationHelper.buildConfiguration( Thread.currentThread().getContextClassLoader(), this.m_blockConfiguration.getChild( Constants.CONFIG_XCONF_FILE ).getValue() ); createThreadManager( cm ); this.m_roleManager = createRoleManager(); builder.setContainerClass( ObjectModelContainer.class ); builder.setContextDirectory( m_blockContext.getBaseDirectory() ); builder.setWorkDirectory( m_blockContext.getBaseDirectory() ); builder.setComponentManagerParent( this.m_blocksManager ); builder.setContainerConfiguration( this.m_containerConfiguration ); builder.setRoleManager( this.m_roleManager ); builder.setLoggerManager( new LoggerLoggerManager( getLogger().getChildLogger( "container" ) ) ); builder.setCommandQueue( cm.getCommandQueue() ); // builder.setCommandQueue( null ); return builder; } private void createThreadManager( final CommandManager cm ) throws Exception { this.m_containerThreadManager = new TPCThreadManager(); ContainerUtil.enableLogging( this.m_containerThreadManager, getLogger().getChildLogger( "thread-manager" ) ); ContainerUtil.parameterize( this.m_containerThreadManager, createThreadManagerParameters() ); ContainerUtil.initialize( this.m_containerThreadManager ); this.m_containerThreadManager.register( cm ); } private Parameters createThreadManagerParameters() { Parameters p = new Parameters(); p.setParameter( "threads-per-processor", "2" ); return p; } > Unfortunately setCommandQueue(null) does not disable async init, > as I thought it would due to OverridableContext which throws an > exception if a null is stored :( imho we need an explicit way to disable the async. -pete -- peter royal -> [EMAIL PROTECTED] -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>