Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > pipe & progressbar


Автор: vitaly1979 21.6.2006, 17:26
кто-нибудь может сказать почему данные из пайпа доходят до конца уже на выходе?

т.е. у меня из fork-х процессов в главный процесс(приемник в отд. потоке(threads))  через пайп посылаются данные для progressbar-а
уже под конец только....

может буферизация, как отключить? 

Автор: vitaly1979 21.6.2006, 17:47
ага)
вот я закрыл STDERR в главном потоке, и соот для всех
из-за этого оказывается

сделал я для того. чтобы на консоль не валились ошибки модуля DBI 
такие как duplicate entry 

подскажите как лучше сделать, может там есть опции для DBI
первое что приходит в голову перед каждым INSERT сохранять-закрывать STDERR
а потом снова открывать
кстати тоже надо вспомнить как это делается

может другой вариант есть? 

Автор: vitaly1979 21.6.2006, 18:03
спасибо всем)
думаю параметр PrintError в connect поможет 

Автор: vitaly1979 21.6.2006, 18:23
вопрос оказывается открыт еще
все равно в конец pipe -а не приходят вовремя строки 

Автор: vitaly1979 21.6.2006, 20:27
ух, ну все, вроде решилось
закрыл нафиг STDERR, слишком много туда сваливается даже не от DBI
заюзал IO::Pipe там есть метод autoflush

благодарю за внимание)

 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)