Re: FLEX в многопоточном окружении
- From
- Pertzel Family ()
- To
- Yuri Muhitov
- Date
- 2002-11-01T12:43:22Z
- Area
- RU.ALGORITHMS
From: "Pertzel Family" <voldemar@relhum.org>
"Yuri Muhitov" <muhitov@bercut.ru> wrote in message news:apraob$3fo$1@ddt.demos.su...
> Интересует следующий вопрос : насколько возможно использование flex в
> многопоточном окружении. Необходимо поместить парсер в DLL, из которой его
> могут вызвать множество клиентов.
flex, собака, использует глобальные переменные,
причем, принципиально важные, вроде YYTEXT.
При необходимости создания нескольких
независимых парсеров, используется опция -P,
которая переименовывает глобальные переменные
в сгенерированном Ц-шном коде.
Если клиенты при обращении к парсеру всегда
начинают и заканчивают работу по точной границе
лексемы и не оставляют в буффере ввода flex
(речть о flex -- у lex отдельного буфера нет),
то проблем никаких просто не будет. Если же
ситуация не такова, да еще при асинхронной
работе, flex в чистом виде непригоден. *По*
*слухам* для этого есть в самом пакете добавка
-- flex++, которой я сам не пользовался.
--- ifmail v.2.15dev5
* Origin: Sent via Graf's Inn at news://news.relhum.org (2:5020/400)