-
-
Save cyrillos/a0eaa178bfc0d22c1810c59a951421c8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cbox -- создание С функций, аналог box.schema.func(), содержится только в памяти, | |
и можно использовать на нодах в RO режиме. Не сохраняются при остановке инстанса. | |
Интерфейс модулей | |
================= | |
cbox.module.load(path) | |
- загружает новый модуль в кэш тарантула | |
cbox.module.unload(path) | |
- выгружает модуль из кэша. если модуль используется функциями, | |
то у него просто уменьшается referece counter, пока все функции | |
не будут удалены его нельзя выгружить, он -EBUSY | |
cbox.module.reload(path) | |
- перегрузка моуля | |
Интерфейс функций | |
================= | |
f = cbox.func.create(path.name) | |
- создает новую функцию для модуля path. если модуль еще не загружен, то ошибка | |
- увеличивает каунтер модуля | |
- возвращает callable объект | |
- удаление функции происходит через __gc | |
- метод __gc декрементит каунтер модуля | |
f:destroy() | |
- явное удаление функции | |
f(...) | |
- вызов функции с аргументами |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
TODO:
Draft:
Common case:
local mod = module.load('path.so')
local func = mod:load('func')
Explicit case:
local mod = module.load('path.so')
local func = mod:load('func')
func:unload()
mod:unload()