Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Вниз

И снова Service   Найти похожие ветки 

 
Fiend   (2002-07-10 15:37) [0]

Вот код моего сервиса:
procedure TCRService.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
sleep(100);
CRService.ServiceThread.ProcessRequests(false);
end;
StopServer;
end;

Почему то нерегулярно но где то после третьего цикла Запуск-Останов, на останове выдаёт ошибку "Память не может быть read". Долго колупался, проверил все деструкторы своих объектов, что и как выполняеться, всё корректно. Утомился и сделал слегонца другой код:

procedure TCRService.ServiceExecute(Sender: TService);
begin
CRService.ServiceThread.ProcessRequests(true);
StopServer;
end;

И шо ви думаете, ошибка пропала!
С чем связано появление эррора, непонятно. Но очень нехочется чтобы в дальнейшем мой сервис вычудил что то с системой.

Гляданите ПОЖАЛУСТА


 
Fiend   (2002-07-10 15:53) [1]

Шо даже намёков на мысли никаких нет??????


 
Skier   (2002-07-10 15:54) [2]

>Fiend
А если sleep(100) снести ?


 
Fiend   (2002-07-10 16:00) [3]

Если снести эту "Важнейшую" операцию, то как вы прекрасно понимаете, мой сервис тут же отрывает все ресурсы на себя. Оно и понятно. Можно конечно и убрать, не вопрос, тока вот зачем???

Я проверял, все дуструкторы и останавливающие процеды отрабатывают до конца!!!!

Ошибка же возникает ХЗ когда. И я так понимаю, что если моё разрушение отработало до конца, значит ошибку делает не мой код.

А кто, и почему???

Ведб Екзекуте я переделал не сильно, со смысловой точки зрения.


 
Fiend   (2002-07-10 18:26) [4]

И всё же разобрался.

Дело было не в синхронизации, как некоторые мне на чате тыкали этим в лицо.

Просто пока останавливались дочерние потоки, главный поток, который их породил, успевал выгрузить библиотеки с функциями, которые использщовались дочерними потоками.

Это конечно можно назвать и синхронизацией, но слегка не в том смысле, как например синхронизация с ВЦЛ


 
Skier   (2002-07-10 18:28) [5]

>Fiend
Т.е. дело в sleep-е или что-то более хитрое ?


 
Fiend   (2002-07-10 18:29) [6]

То Skier ©
нет не в слипе.
Хотя я его и применил, чтобы основной поток при уничтожении, подождал слегка пока порождённые им трэды успели разрушиться



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.004 c
7-70937
Jek_218
2002-04-19 22:42
2002.07.22
Помогите плиз!!!


1-70758
Дремучий
2002-07-09 13:40
2002.07.22
хочу сделать format main.pas /1.cfg, дайте ссылки


14-70908
lipskiy
2002-06-24 02:51
2002.07.22
Микропрограммки


3-70596
den74
2002-06-27 16:41
2002.07.22
DBGrid


14-70915
SPeller
2002-06-25 16:12
2002.07.22
HTML и JavaScript





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский