[reSIProcate] thread safe
Kovar, William (Bill)
bkovar at avaya.com
Fri Jan 12 10:45:48 CST 2007
Scott,
Is there any special reason why you are using the AppDialogSetHandle to
end the call in your example below??
Can the handle be the InviteSessionHandle ??
Bill Kovar
bkovar at avaya.com
Avaya, Inc.
(732) 852-2609
_____
From: resiprocate-devel-bounces at list.sipfoundry.org
[mailto:resiprocate-devel-bounces at list.sipfoundry.org] On Behalf Of
Scott Godin
Sent: Tuesday, September 05, 2006 12:08 PM
To: Ira Kadin; resiprocate-devel at list.sipfoundry.org
Subject: Re: [reSIProcate] thread safe
...
From: Ira Kadin [mailto:ikadin at Airspan.com]
Sent: Tuesday, September 05, 2006 11:55 AM
To: Scott Godin; resiprocate-devel at list.sipfoundry.org
Subject: RE: [reSIProcate] thread safe
So for the first solution I can't use dumThread - or will have
to make a changes in DumThread to mutexing around InternalProcess() .
And it will be one mutex for all calls.
[Scott] right
The second solution - could you give me an example how to end a
call with dum->post.
[Scott] Something like the following....
class AppDialogSetEndCommand : public DumCommand
{
AppDialogSetEndCommand(AppDialogSetHandle h) : mHandle(h) {}
executeCommand()
{
If(mHandle.isValid())
{
mHandle->end();
}
private:
AppDialogSetHandle mHandle;
};
AppDialogSetEndCommand* cmd = new
AppDialogSetEndCommand(ads->getHandle);
Dum->post(cmd);
thanks a lot
Irena
_____
From: Scott Godin [mailto:slgodin at icescape.com]
Sent: Tuesday, September 05, 2006 6:20 PM
To: Ira Kadin; resiprocate-devel at list.sipfoundry.org
Subject: RE: [reSIProcate] thread safe
The easiest place to provide mutexing is around the calls to
process() and any other api calls you call from a different thread.
This requires no changes to the core code.
The alternative approach, using DumCommand - the only call you
make from another thread is dum->post() which is thread safe. I'm not
sure what you don't understand. Calling end() does more than just queue
a destroy message.
DumV2 has been started - but hasn't been worked on in a few
months. There is no timeline for it. It is planned to be thread safe.
From: resiprocate-devel-bounces at list.sipfoundry.org
[mailto:resiprocate-devel-bounces at list.sipfoundry.org] On Behalf Of Ira
Kadin
Sent: Tuesday, September 05, 2006 2:28 AM
To: resiprocate-devel at list.sipfoundry.org
Subject: [reSIProcate] thread safe
Thanks everybody who answered me on GW application question.
We want to develop the application which can handle 400-500
simultaneous calls. So I think we will need to run dum and sip stack in
separate threads. As dum is not thread safe, I guess we have to put
locking object in ApplDialog class and use it in all callbacks
(onConnected, onProvisional, etc..) and functions, like
DialogUsageManager::end(), DialogUsageManager::accept() called from
different application threads. Is it a right solution ? I don't
understand the second advise - use DialogUsageManager::post() - because
for this solution I have prepare SipMessage myself (meaning - duplicate
code in end() function.
Is it any plan to make Dum thread safe ?
thanks
Irena
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20070112/a843da52/attachment.htm>
More information about the resiprocate-devel
mailing list