![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| bass |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Тупик .... Компилятор Builder 6.0 Win Xp пишу маленький сервачек.... На серверсокете........
При создании формы.....
Такой код не работает..... Выскакивают мессадж боксы..... Поидеи потоки по одному должны зайти..... Но счетчики меняються в CritsectQweryBuffer... Посмотрел отладчиком может я заработался... Заранее спасибо. Это сообщение отредактировал(а) GremlinProg - 13.6.2012, 07:01 |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Должно работать, давайте весь код
|
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Кода несколько страниц(20), сейчас просто написал маленький код и такая же ошибка........
Еще прикрепляю проект... Конекчусь телнетом выскакивает два мессадж бокса..... Два раза коннекчусь..... С уважением .. Заранее спасибо... Присоединённый файл ( Кол-во скачиваний: 3 )
CRITICAL_SECTION.rar 352,62 Kb |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Рискну предположить, что ServerSocket1Accept синхронизируется с главным потоком, а потому EnterCriticalSection будет выполняться много раз.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Что то я вас не понял...... В критическую секцию должен заходить один поток........ Мессадж бокса два!!!!!!! Значит туда попали два потока........ При нормальной работе другие ожидают.......
|
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Все просто код работает правильно
После MessageBox ты покидаешь критическую секцию так как MessageBox(NULL, ....); не блокирует поток. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Пишу вот так....
Пока не нажму первый мессадж второй не выскакиват, значит блокирует.......
Это сообщение отредактировал(а) GremlinProg - 13.6.2012, 07:04 |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
И правда странная хрень
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
У меня есть подозрение, что InitializeCriticalSection(&CritsectQweryBuffer); выполняется неоднократно...
Нельзя ли это вывести за пределы TForm1? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Может что то не то в настройках проекта, но ставил релиз..... Такая же байда.....
ServerSocket1 интересно как работает????? Пробовал вставить в форм шоу инициализацию..... И как это синхронизировать.???????
Попробовал так вот, но какае то странная ситуация ..... Если по одному заходят то все ок а если один весит на мессадж боксе, и заходит другой то виснет вся программа(и загораються песочные часы)...... Такое ощущение что связано это с оконной процедурой......... Заранее спасибо, с уважением. Добавлено @ 13:47
Один раз выполняеться, посмотрел отладчиком...... Добавлено @ 13:56
Скорее всего так и получаеться синхронизация походу есть..... Но прицем тут критическая секция?????? Взрыв мозга....... Скорее еще прикол в свойствах ServerSocket1.......... Может тему в сети перенести ???? Может там что посоветуют???? Это сообщение отредактировал(а) bass - 11.6.2012, 13:59 |
||||||
|
|||||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
В смысле при втором подключении будет снова InitializeCriticalSection. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Нет ставлю брейк, запускаю приложение, останавливаеться...... Далее произвожу коннекты не разу на брайке не останавливаеться..... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Так не корректно, нужно пользоваться Interlocked-функциями... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Это просто чтоб понять что происходит....... А происходит следующие приложение виснет, заначит процедура ServerSocket1Accept синхронизирована с главным потоком, как предположил Alexeis........ А вот куда ковырять пока не соображу........ |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
вот ответ
если проще, то если критическая секция была уже вызвана в потоке, то при повторном вхождении в нее в этом же потоке не происходит блокировки Это сообщение отредактировал(а) Dem_max - 11.6.2012, 14:21 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |