29.01.2006 18:42 Damien Sandras wrote:
> Hi,
>
>Excellent debugging!
>
>I have reproduced the problem (which didn't appear on Linux), and I have
>fixed it.
>
>Thanks for that excellent report!
1. Unfortunately I must say that this problem is still not corrected - in
Windows environment.
I've tested it with CVS HEAD from 29.01, when you wrote that you've fixed
it, same in code from today - It still crashes. I've debugged that code, and
conclusions are the same - it is possible that endpoint is deleted before
deletion of all its transport threads (which are using class variables
already deallocated), even without debugger I can see this in a trace from
library.
After closer look at synchronization mechanisms available in pwlib, I've
used PCondMutex as a counter of SIP transport threads. Destructor of
SIPEndPoint waits until this counter reaches 0 - then returns.
In attachnment I send modified sources (from HEAD 02 Feb 2006) - take a look
to them, maybe my workaround is not valid in 100% of cases, but I didn't
test it intensievely yet.
2. Another problem which I've spotted: during deletion of endpoints,
sometimes OPAL "likes" to hang up in transport thread (in HandlePDU as I can
remember), it fires assertion related to heap allocation. When I have this
problem once again I'll try to grab stack trace, and other usefull files to
help correcting this issue, which sometimes is very annoying....
Best regards:
Jacek Stobnicki