Пример:
Код |
---|
function my_fn()
table.concat(t, "1")
end
Synchronized(my_fn)
|
... было бы эквивалентно текущему вызову sconcat()
Иными словами, текущие потокобезопасные функции внутри выглядят видимо как-то так:
Код |
---|
safe_function_concrete(args) {
if (safe_to_execute()) {
function_concrete(args);
}
}
|
Это можно было бы генерализировать в
Код |
---|
safe_function(concrete_fn) {
if (safe_to_execute()) {
concrete_fn()
}
}
|
где safe_to_execute() - синхронизационный код, concrete_fn - конкретная функция, которую будет указывать пользователь.