Главная страница
    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.005 c
14-70864
Алоэ
2002-06-22 22:26
2002.07.22
Как подключить локалку к инету ?


8-70833
Mad
2002-03-14 18:00
2002.07.22
DirectSound


1-70694
Александр
2002-07-10 17:52
2002.07.22
Помогите разобраться


1-70769
EugenCFG
2002-07-09 11:29
2002.07.22
RxCheckListBox1


1-70692
SadStar
2002-07-11 02:42
2002.07.22
Запутался в трех строках кода при работе с TValueListEditor





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский