My Oracle Support Banner

Multiple Thread Creation For Event Handling Of ACA (Doc ID 1966029.1)

Last updated on AUGUST 21, 2016

Applies to:

Oracle Communications EmbeddedMIND - Version 3.5.0 and later
Information in this document applies to any platform.

Goal

In the integration work, there is a requirement to handle multiple requests from ACA application.  In the existing eMIND code, upon receiving  an event, ACA calls the hander registered for that event.  ACA also passes the "agent Shell" as argument to handler as shown below:

callbacks[i]->call(it->first, *m_eventToProcess, *shell); --> from "AutoConfigAgent.cpp" file

 
The event hander syntax is as shown below from our code:

void ssfEventHandler (id_type propertyId, const Fwk::Event& event, Fwk::AgentShell& shell);

 
In the definition of the above handler we are using agent shell variable to set/get/callmethod for classes with moid info from the argument "event"; however,  this is sequential, events are getting handed one by one which takes some time for processing  the ACA gets stuck until the response for the "get/set" call.

Hence we want to unblock ACA, so we have tried creating threads(pthread_create) by passing "agent shell" as argument.

But we are not able to pass this as this is some c++ class variable or something.

So I have created another shell agent as "g_ACA_shell" which is global variable which can be used across different threads; however, when this variable is accessed, the thread gets killed.

g_ACA_shell = m_system.getUnrestrictedShell();


1.  Is it possible to  create multiple threads for each event handling?
2.  Is it possible to pass "agent shell" as argument to threads?
3.  If point 2 is not possible, is it possible to use this global variable "g_ACA_shell"?
4.  Is there anyway to handle multiple events simultaneously and dynamically?

Solution

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Goal
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.