Загрузка эксперта

 

Добрый день, тут такой вопрос возник.

Терминал уже запущен и к графику уже прицеплен советник если в процессе работы подкинуть этот же советник (имеется в виду совтеник с таким же именем, но с изменениями) в скомпилированном виде - он подхватится терминалом или нужно перезапустить терминал (експерт)?


Заранее спасибо.

 
лучше перезапустить терминал
 
Подкинуть -- нет. А если перекомпилировать в MetaEditor из той же папки, откуда и терминал, то MetaEditor терминалу об этом скажет, и терминал подхватит новую версию.
 
wise >>:
Подкинуть -- нет. А если перекомпилировать в MetaEditor из той же папки, откуда и терминал, то MetaEditor терминалу об этом скажет, и терминал подхватит новую версию.

Эт я знаю, дело в том, что при компиляции происходит инициализации активного (прицепленного к графику) эксперта.

Другими словами это все-равно, что перезапустить терминал.


Задача как раз стоит в том, что бы не было переинициализации, т.е. появились изменения в эксперте и подхватились автоматом.


Может кто-нибудь вообще знает как происходит подгрузка эксперта на уровне процессов.

Эксперт сразу в память грузится и потом оттуда читается или каждый раз перечитывается?


Где об этом почитать можно.

 
Если вам необходимо, чтобы измененный перекомпилированный эксперт подхватил текущие актуальные значения - пользуйтесь глобальными переменными клиентского терминала, или файловыми операциями.
 
zxc >>:
Если вам необходимо, чтобы измененный перекомпилированный эксперт подхватил текущие актуальные значения - пользуйтесь глобальными переменными клиентского терминала, или файловыми операциями.

Вы наверное не совсем меня поняли :) мне нужно наоборот - чтобы терминал без перезагрузки подхватил текущие актуальные значения експерта.


Грубо говоря есть, например, такая ситуация:

1. Есть запущенный эксперт:

2. в теле strart выполняется Alert ("OLD expert");

3. эксперт изменился теперь там Alert ("NEW expert");

4. Новый эксперт скомпилирован с тем же именем, но в другом терминале (чтобы не было переинициализации).

5. Старый експерт заменен на новый путем простого перезаписывания в проводнике.

Надо: чтобы эксперт выводил "NEW expert".


К сожалению просто перезапись старого эксперта на новый не помогает.

Вот я и спрашиваю может есть еще способы?

 

Наподобие антивируса, который обновляя сигнатурные базы в фоновом режиме работает без перезагрузки? Да?

Сигнатурные записи - это файлы. Антивирус скачал файлы, распаковал их на диске, а потом считал информацию в оперативную память. Аналог моего прошлого ответа - пользуйтесь файловыми операциями.

А при обновлении модулей ядра, антивирус отключается на долю секунды, а затем снова загружается. Это не заметно, но происходит именно перезагрузка. Иногда (очень редко) даже появляется всплывающее окошко, информирующее о том что требуется перезагрузка операционки.

 

Насколько я понимаю, при работающем эксперте, сама программа (сам эксперт) находится в оперативной памяти. Вся структура, весь алгоритм, со всеми значениями переменных, логикой и т.п. Вы хотите изменить структуру, изменить логику действия программы которая в работе, работает по предыдущему алгоритму. Это можно сделать не выгружая старую структуру/логику из оперативной памяти? Путем добавления новых примочек, путем изменения существующих функций не затрагивая значения текущих переменных - все это сделать прямо в работающем эксперте, прямо в оперативной памяти? Наверное все-таки эксперта придется выгрузить из оперативной памяти и запустить на выполнение, снова загрузить в оперативную память новую структуру, нового эксперта. Прямо в работе можно изменять значения переменных, но не логику программы.

 

Когда обновляется браузер, например FireFox, он просит перезагрузку. Не так ли?

 

Хотя я могу сильно ошибаться, этот вопрос к профессиональным программистам.

 
zxc >>:

Хотя я могу сильно ошибаться, этот вопрос к профессиональным программистам.

К сожалению, Вы совершенно правы.

 
eugene_k >>:

К сожалению, Вы совершенно правы.

Нет.

MetaEditor(?) и Terminal работают в связке. При компиляции соотв. терминалу приходит событие.

Ессно подмена файла ни к чему не приведет.

 
TheXpert >>:

MetaEditor(?) и Terminal работают в связке. При компиляции соотв. терминалу приходит событие.

Ну, допустим, что скомпилировать можно и в другом Терминале/MetaEditorе, так что событие терминалу может и не приходить.


Интересно, а если логику вынести во внешний файл, эксперт ее подхватит?

Причина обращения: