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