What's required for a non-threaded AgentX++ subagent?

Frank Fock Frank.Fock____t-online.de
Fri May 9 20:43:53 CEST 2003


James,

The ThreadPool creates threads only up to the size
of the pool. Once a thread of the pool is created
it is never canceled/destroyed until the ThreadPool
is deleted. Thus, with the latest AGENT++/AgentX++
your agent/subagent will not create/destroy threads
dynamically, even if you are using the default
setup.

Best regards,
Frank

James Brokenbek wrote:
> Frank,
> 
> I've decided to investigate the ThreadPool-of-size-one suggestion you
> made earlier.  Let me clarify that I want single-threaded behavior not
> because of concurrency issues, but rather because my platform, FreeBSD
> 4.3, apparently has a leaky pthreads implementation.  This rules out
> repeated thread creation/destruction operations.
> 
> So then, will your suggestion keep a single thread running indefinitely,
> or will it allow the single "pooled" thread to exit and then start a new
> one to "refill the pool"?   A cursory check of the code suggests to me
> that the latter is the case.  Could you please clarify?  Thanks.
> 
> James Brokenbek
> Celion Networks, Inc.
> Richardson, TX
> 
> 
>>-----Original Message-----
>>From: Frank Fock [mailto:Frank.Fock____t-online.de]
>>Sent: Monday, April 28, 2003 5:44 PM
>>To: James Brokenbek
>>Cc: agentpp-dl____agentpp.com
>>Subject: Re: What's required for a non-threaded AgentX++ subagent?
>>
>>
>>James,
>>
>>Theoretically, it is possible to implement a
>>single-threaded AgentX++ subagent. However with
>>the current version, a couple of code modifications
>>will be needed. Since the master agent relies on
>>a multi-threaded environment, you will have to
>>separate any master specific code from the AgentX++
>>library and remove it.
>>
>>I will provide the necessary modifications in the
>>next AgentX++ release on macro definition basis.
>>The necessary Makefiles will also be provided.
>>
>>As a quick workaround, you could also use the multi-threaded
>>library and reduce the ThreadPool size to one. You will
>>then use POSIX threads but, the subagent will behave as
>>if it was compiled without threads (single-threaded).
>>
>>Hope this helps.
>>
>>Best regards,
>>Frank
> 
> 






More information about the AGENTPP mailing list