| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > локализация глобальных переменных |
| Автор: igsilya 23.5.2011, 19:16 |
| Я в принципе не новичок, но сталкиваюсь с подобным впервые. Есть большой модуль в котором есть много глобальных переменных, чтоб от них избавится потребуется очень много времени и сил. Нужно использовать функцию из этого модуля в другой программе. Эта программа многопоточная (использую pthread) => глобальные переменные того модуля будут использоваться всеми потоками сразу(что нас не устраивает). Требуется, не отказываясь от потоков в пользу процессов, локализовать глобальные переменные того модуля для каждого потока.(каждому потоку по своему экземпляру). Надеюсь получилось описать проблему. Может кто сталкивался с подобным? Заранее спасибо. |
| Автор: borisbn 23.5.2011, 19:36 |
| Сталкивался. Кроме создания класса и изменения глобальных переменных на члены этого класса ничего лучше не придумал |
| Автор: igsilya 23.5.2011, 19:41 |
| Просто этот так называемый модуль состоит сам из 14 файлов, включат много классов и пространств имен. Я не очень представляю как это запихнуть в один класс. |
| Автор: borisbn 23.5.2011, 21:18 |
| Всего то 14… а в один и не надо. Сделай 14 классов. Никто и не говорил, что будет легко. С недельку придётся убить. Мож меньше… |
| Автор: igsilya 23.5.2011, 21:22 |
| надо до завтра. так что не вариант. мне проще будет тогда потоки процессами заменить. |
| Автор: xvr 24.5.2011, 19:00 |
| Сделать все переменные TLS (локальными для thread'а). В разых компиляторах это делается разными ключевыми словами. |
| Автор: igsilya 24.5.2011, 19:37 |
| а можно пример для GNU G++ 4.4? все, сам нашел в нете. Всем спасибо за помощь. |