если смотреть выполнение в диспечере задач, то увидим что память всё растёт и растёт, замечено, что чем больше SIZE myQueue, ну допустим 10240, то потеря памяти зависит от SIZE myQueue и очень даже наглядна.
Хотелось бы спросить уважаемое сообщество, как корректно работать с динамическими очередями?
У меня теряется память!!! (C55)
об-NULL-ение SELF.Q после DISPOSE, эффект тот же.
Код: Выделить всё
PROGRAM
MAP
Main
END
myQueue QUEUE,TYPE
Field STRING(1024)
END
myClass CLASS,TYPE
Q &myQueue
Construct PROCEDURE()
Desctruct PROCEDURE(),VIRTUAL
END
CODE
Main
!---------------------------------------------------------------------
myClass.Construct PROCEDURE
CODE
SELF.Q &= NEW myQueue
!---------------------------------------------------------------------
myClass.Desctruct PROCEDURE
CODE
! FREE(SELF.Q)
DISPOSE(SELF.Q)
MAIN PROCEDURE
loc_Object &myClass
CODE
LOOP
LOOP 10000 TIMES
loc_Object &= NEW myClass
DISPOSE(loc_Object)
END
stop('1')
END
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
ICQ: 10659412
Yahoo group: clarion@yahoogroups.com
(Добавление)
вопрос снимается, Destructor - буковка лишняя была в описании
Andrew Myalin
(Добавление)
Гы-гы! Все равно классно! Точно как с Implicit-переменныеми... Нет, ребята - неявности созданы для усложенеия нам жизни, чтобы осчастливить нас долгими упоительными часами поисков дурацких ошибок...
--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
Написал: ClaList(2)