падает в критической секции....
От: Sergeem Израиль  
Дата: 04.09.05 16:34
Оценка:
Все большой привет.

У меня процесс падает в одном из тредов в EnterCriticalSection ли LeaveCriticalSection.
В разных ситуациях падает в разных местах . Конкретное место и причину отловить сложно.
Тредов много, критических секций тоже много.
В принципе, у меня такой вопрос — есть ли ограничение на количество critical sections на процесс?
По моим подсчетам, у нас в процессе открывется > 20000 .

Спасиба.
Serge.

Hасколько проще была бы жизнь, если бы она была в исходниках.
Re: падает в критической секции....
От: Anton Batenev Россия https://github.com/abbat
Дата: 05.09.05 01:24
Оценка:
Здравствуйте, Sergeem, Вы писали:

S>У меня процесс падает в одном из тредов в EnterCriticalSection ли LeaveCriticalSection.

S>В разных ситуациях падает в разных местах . Конкретное место и причину отловить сложно.
S>Тредов много, критических секций тоже много.
S>В принципе, у меня такой вопрос — есть ли ограничение на количество critical sections на процесс?
S>По моим подсчетам, у нас в процессе открывется > 20000 .

Может,

EnterCriticalSection

[skip]

This function can raise EXCEPTION_POSSIBLE_DEADLOCK if the critical section is corrupt or deadlock detection is enabled. Do not handle this exception; either continue execution or debug the application.

Windows 2000/NT: In low memory situations, EnterCriticalSection can raise an exception. To avoid problems, use structured exception handling, or call the InitializeCriticalSectionAndSpinCount function to preallocate the event used by EnterCriticalSection instead of calling the InitializeCriticalSection function, which forces EnterCriticalSection to allocate the event.

... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[2]: падает в критической секции....
От: Аноним  
Дата: 05.09.05 08:09
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, Sergeem, Вы писали:


S>>У меня процесс падает в одном из тредов в EnterCriticalSection ли LeaveCriticalSection.

S>>В разных ситуациях падает в разных местах . Конкретное место и причину отловить сложно.
S>>Тредов много, критических секций тоже много.
S>>В принципе, у меня такой вопрос — есть ли ограничение на количество critical sections на процесс?
S>>По моим подсчетам, у нас в процессе открывется > 20000 .

AB>Может,


AB>

AB>EnterCriticalSection

AB>[skip]

AB>This function can raise EXCEPTION_POSSIBLE_DEADLOCK if the critical section is corrupt or deadlock detection is enabled. Do not handle this exception; either continue execution or debug the application.

AB>Windows 2000/NT: In low memory situations, EnterCriticalSection can raise an exception. To avoid problems, use structured exception handling, or call the InitializeCriticalSectionAndSpinCount function to preallocate the event used by EnterCriticalSection instead of calling the InitializeCriticalSection function, which forces EnterCriticalSection to allocate the event.


А как узнать, какой exception выброшен?
Re[3]: падает в критической секции....
От: D_V_F Украина  
Дата: 05.09.05 08:46
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Anton Batenev, Вы писали:


AB>>Здравствуйте, Sergeem, Вы писали:


S>>>У меня процесс падает в одном из тредов в EnterCriticalSection ли LeaveCriticalSection.

S>>>В разных ситуациях падает в разных местах . Конкретное место и причину отловить сложно.
S>>>Тредов много, критических секций тоже много.
S>>>В принципе, у меня такой вопрос — есть ли ограничение на количество critical sections на процесс?
S>>>По моим подсчетам, у нас в процессе открывется > 20000 .

AB>>Может,


AB>>

AB>>EnterCriticalSection

AB>>[skip]

AB>>This function can raise EXCEPTION_POSSIBLE_DEADLOCK if the critical section is corrupt or deadlock detection is enabled. Do not handle this exception; either continue execution or debug the application.

AB>>Windows 2000/NT: In low memory situations, EnterCriticalSection can raise an exception. To avoid problems, use structured exception handling, or call the InitializeCriticalSectionAndSpinCount function to preallocate the event used by EnterCriticalSection instead of calling the InitializeCriticalSection function, which forces EnterCriticalSection to allocate the event.


А>А как узнать, какой exception выброшен?


см. MSDN на тему SEH.
Кстати, обычно, такое количество критических секций свидетельствует о неправильной архитектуре проекта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.