Название: Одна и таже библиотека в разных потоках Отправлено: mega_m от Декабрь 22, 2006, 23:19 Можно делать так ?
thread 1: loadLib(a.so) и параллельно в другом потоке подгружать одну и туже либу thread 2: loadLib(a.so) или использовать Mutex для этих дел и загружать её один раз. Название: Одна и таже библиотека в разных потоках Отправлено: Вячеслав от Декабрь 22, 2006, 23:54 Насколько я помню, so грузиться только один раз на уровне системы ... Но пингвина под рукой нет - проверить не могу ... Но воспоминания отчетливые ;)
Название: Одна и таже библиотека в разных потоках Отправлено: mega_m от Декабрь 23, 2006, 00:07 собственно нужен не только линукс. в ассистенте вроде ничего нет по этому поводу
>Насколько я помню, so грузиться только один раз на уровне системы Вот этот вопрос и волнует сама система будет разруливать мои обращения к библиотеке из разных потоков? по большому счету нужен только вызов функции typedef void (*MyPrototype)(); MyPrototype myFunction = (MyPrototype) QLibrary::resolve("mylib", "mysymbol"); if (myFunction) myFunction(); Название: Одна и таже библиотека в разных потоках Отправлено: Dendy от Декабрь 23, 2006, 01:12 Идём в документацию по QLibrary и видим:
Note: All the functions in this class are reentrant. Другими словами: Да, можно создавать екземпляр QLibrary в другом потоке и резолвить из него функции. Если такая библиотека уже бьІла загружена, её ресурсьІ становятся разделяемьІми. Название: Одна и таже библиотека в разных потоках Отправлено: mega_m от Декабрь 23, 2006, 15:39 Спасибо. Если бы все с такими золотыми подсказками было бы !
|