Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убить соданный threads? 
V
    Опции темы
anwe
Дата 24.2.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: нет
Всего: 23



wolter, может у тебя подгружаются еще незагруженные ддл-ки. Выгрузи их.
PM MAIL   Вверх
wolter
Дата 24.2.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



Какие ДДЛки? проблемма в том что после нажатия на кнопочку "добавить поток" ОС создает ячейку памяти размером 1.6мб, так сказать ячейку где трейду можно было бы развернуться, после того как трейд отработал, из списка потоков он сам себя удаляет, но резерв в 1.6 всеровно остаеться занятым, по логике Perl`a? это делаеться для того, а мол программа еще раз будет использоваться поток и чтобы ей еще раз не "откусывать" 1.6 мб памяти, Perl продолжает ее держать, но дело в том что поток каждый раз создаеться с новым ID... во всех других языках есть какието команды которыми можно удалить этот резерв, а вот в перле что почемуто нету...

PM MAIL   Вверх
PanamOS
Дата 24.2.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



Цитата(wolter @  24.2.2008,  21:25 Найти цитируемый пост)
еще раз будет использоваться поток и чтобы ей еще раз не "откусывать" 1.6 мб памяти, Perl продолжает ее держать

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

Это сообщение отредактировал(а) PanamOS - 24.2.2008, 22:23
PM MAIL   Вверх
wolter
Дата 24.2.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



В преддыдущем моем коде, потоки не создовались каждый раз они просто работали в безконечном цыкле, поэтому там проблем с памятью небыло,  манул по потокам я выучил уже как отче наш "хотя может я чтото самое важно и не понял" может быть проблемма именно в самом Perl`e у меня ActiveState ActivePerl 5.8 
PM MAIL   Вверх
wolter
Дата 25.2.2008, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



есть вот такая штука тут но после устоновки и запуска, мой перл мне говорит threads version 1.39 required--this is only version 1.00 at C:/Perl/site/lib/Thread/Cancel.pm line 8. напрашиваеться в полне логический вопрос, как поднять версию моего текущего трайда, на перл 5.10 переходить не хочеться)) там есть Win32::GUI ))

Добавлено через 46 секунд
Не я точно на дурку скоро переду
PM MAIL   Вверх
PanamOS
Дата 25.2.2008, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



...

Это сообщение отредактировал(а) PanamOS - 25.2.2008, 05:33
PM MAIL   Вверх
wolter
Дата 25.2.2008, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



PanamOS, интиресно что же ты мог редоктировать в совем последнем сообщении
PM MAIL   Вверх
wolter
Дата 25.2.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



Нашел еще одну проблему, воттут есть ppd для трейда 1.67, ставлю его себе, пытаюсь юзать его новые фнкции, перл мне выдает threads version 262144 required--this is only version 1.00 at C:/Perl/lib/Exporter/Heavy.pm line 121. 
потом иду дальше деисталюрую модуль с трейдом, он ествественно удалает тот который 1.67, пытаюсь удалить еще раз (тот который идет вместе с перлом) на что  ppm естевствено мне отвечает что, мол, дружище, такого модуля нет. Мне кто то может подсказать что я делаю не так ?
PM MAIL   Вверх
wolter
Дата 26.2.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



Итак госпада, оказываеться перл отлично работает с нитями или как их называют трейдами и все отлично он возврощает память, оказываеться всгото навсего надо было просто поставить версию перла более свижее
вот этот код работает разпрекрасно, занимая всего то 8 метров памяти
Код

#!/usr/bin/perl


use Win32::GUI;
use threads;

my $main = Win32::GUI::Window->new(
    -name    => "Main",
    -left    => 100,
    -top     => 100,
    -width   => 400,
    -height  => 380,
  );

my $msg_con = $main->AddTextfield(
    -name   => "Textfield3",
    -multiline  => 1,
    -left   => 3,
    -top    => 15,
    -width  => 385,
    -height => 185,
    -readonly => 1,
    -wantreturn => 1,
    -vscroll => 1,
);

my $bt = $main->AddButton(
    -name   => "send_kart",
    -text   => "создаем поток",
    -left   => 35,
    -top    => 267,
);


$msg_con->LimitText(-1);


$main->Show();
Win32::GUI::Dialog();


sub the {
$msg_con->Append("Делаем поток\r\n");

}

sub send_kart_Click {
$thread = threads->create(\&the)->detach();
}


sub Main_Terminate {
        $main->Disable();
        $main->Hide();
        return -1;
}


в старой версии (5.8.2) на )->detach(); перл просто вылитать с ошибкой,  а в версии 5.8.8 он прекрасно отрабатывает и возврощает память

ОГРОМНО СПАСИБО ВСЕМ кто принимал участия в ришение данной проблеммы

P/S/ У все у кого есть так называемые трейды "зомби" просто ставте новую версию перла.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0858 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.