LINUX.ORG.RU
Ответ на: комментарий от post-factum

В смысле? При обновлении либы прога использует старый экзмепляр в памяти до ребута. Я поэтому и хочу чтобы можно было пропатчить на лету.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Разве нельзя выгрузить старую библиотеку и подгрузить новую? При этом, если необходимо, в имени файла библиотеки явно указывать версию.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

нет. Даже с dlopen не получится т.к. придётся останавливать сервис, выгружать либу(dlclose), загружать обратно, стартовать сервис. Ещё и куча гемора для прогеров, хреновое решение.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от post-factum

И сразу после выгрузки другой поток вызовет эту функцию, которую только что выгрузили). Все равно надо все остановить для этого.

sergej ★★★★★
()
Ответ на: комментарий от true_admin

Можно загрузить новую версию до выгрузки старой. Поменять указатели на функции, чтоб указывали на новые и только потом выгрузить старую либу.

eugene2k
()
Ответ на: комментарий от eugene2k

Для этого надо править сырцы, это не тру. И, кроме того, что делать если ошибка в программе а не в либе?

true_admin ★★★★★
() автор топика
Ответ на: комментарий от PayableOnDeath

да, тоже слышал. Хочу на серваках такое.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Нет, я предполагал, что такое требуется для какой-то конкретной самописной проги.

post-factum ★★★★★
()
Ответ на: комментарий от PayableOnDeath

Нельзя полагаться на скорость выполнения другого процесса

Применить обычную критическую секцию.

post-factum ★★★★★
()
Ответ на: комментарий от true_admin

>нет. Даже с dlopen не получится т.к. придётся останавливать сервис, выгружать либу(dlclose), загружать обратно, стартовать сервис. Ещё и куча гемора для прогеров, хреновое решение.

Для таких случаев существует Erlang/OTP - обновление кода сервиса на лету, без приостановки, - штатная операция

Led ★★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.