Fastream Technologies wrote:
> For example, perhaps we can implement a single global mutex for the
> lock... function. 

No good idea. That would change a lot.

> This would slow down the execution for sure but
> would it create the exception?

You have to raise the exception if the wait returns WAIT_TIMEOUT.

> Can you provide some source code
> snippet for this please?

Please search the internet there should be tons of snippets
around, or ask your question in newsgroup:
borland.public.delphi.nativeapi.win32.  
    
--
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html

> 
> Best Regards,
> 
> SZ
> 
> On 4/28/07, Fastream Technologies <[EMAIL PROTECTED]> wrote:
>> Arno,
>> 
>> I have THOUSANDS of critical sections passed to this function as
>> parameter! Isn't there a simpler way to implement??
>> 
>> Regards,
>> 
>> SZ
>> 
>> On 4/28/07, Arno Garrels <[EMAIL PROTECTED]> wrote:
>>> Fastream Technologies wrote:
>>>> This sounds reasonable. Can you give an example? Since all my cs
>>>> are of TCriticalSection type, can I do it in this function:
>>> 
>>> I thought of using mutexes. That's not very difficult to change.
>>> Have an array of mutex handles, then pass the index to your
>>> function. Search for CreateMutex etc. in the SDK. When the wait
>>> returned WAIT_TIMEOUT and you raise an exception MadExcept will
>>> report the callstacks of each thread.
>>> I don't have any idea how one can raise an exception in a thread
>>> or get to thread's callstack when it hangs around in
>>> CriticalSection->Acquire.
>>> 
>>> --
>>> Arno Garrels [TeamICS]
>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>> 
>>>> 
>>>> void __fastcall lockCriticalSection(TCriticalSection *CS)
>>>> {
>>>>        // currently it is:
>>>>        CS->Acquire();
>>>> 
>>>>        // what should it be?
>>>> }
>>>> 
>>>> Best Regards,
>>>> 
>>>> SZ
>>>> 
>>>> On 4/28/07, Arno Garrels <[EMAIL PROTECTED]> wrote:
>>>>> Fastream Technologies wrote:
>>>>>> Hello,
>>>>>> 
>>>>>> I have a very difficult bug: the program includes lots of
>>>>>> critical sections and it suddenly stops responding!
>>>>> 
>>>>> Sounds like deadlock.
>>>>> 
>>>>>> I have a wrapper global
>>>>>> function called lockCriticalSection(TCriticalSection *cs) which
>>>>>> calls acquire. I want to log inside this but need to record the
>>>>>> call stack so that I can see which call is the lastest. Any idea?
>>>>> 
>>>>> AFAIK Jedi gives you the callstack only upon an exception.
>>>>> My idea is to use a different synchronization method with a
>>>>> timeout parameter, when the wait timed out you can raise an
>>>>> exception. 
>>>>> 
>>>>> Would that help?
>>>>> 
>>>>> --
>>>>> Arno Garrels [TeamICS]
>>>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>>>> 
>>>>>> 
>>>>>> Best Regards,
>>>>>> 
>>>>>> SZ
>>>>> --
>>>>> To unsubscribe or change your settings for TWSocket mailing list
>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>>>> Visit our website at http://www.overbyte.be
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> CSA, Fastream Technologies
>>>> Software IQ: Innovation & Quality
>>>> www.fastream.com | Email: [EMAIL PROTECTED] | Tel: +90-312-223-
>>>> 2830 Join IQWF Server Yahoo group at
>>>> http://groups.yahoo.com/group/IQWFServer Join IQ Reverse Proxy
>>>> Yahoo group at http://groups.yahoo.com/group/IQReverseProxy
>>> --
>>> To unsubscribe or change your settings for TWSocket mailing list
>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>> Visit our website at http://www.overbyte.be
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to