Расширение потокобезопасных функций в QLUA

Страницы: 1
RSS
Расширение потокобезопасных функций в QLUA
 
В документации QLUA описано 8 потокобезопасных функций, которые выполняют конкретные действия после  выполнения действий по синхронизации main/callback-потоков. Предложение: добавить функцию Synchronized, которая бы исполняла бы только действия по синхронизации потоков, после чего выполняла бы внутри указанную пользователем функцию, не выполняя никаких других заранее определенных конкретных действий. Сейчас этого можно добиться используя "не по назначению" текущие потокобезопасные функции.
 
Здравствуйте,
Приведите пожалуйста пример применения.
 
Пример:
Код
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 - конкретная функция, которую будет указывать пользователь.
 
Т.е.нужно уметь выполнять заданную функцию под общим мьютексом, верно?
 
Цитата
swerg написал:
Т.е.нужно уметь выполнять заданную функцию под общим мьютексом, верно?
Под средствами синхронизации Quik'a. Официально нигде не говорится, что синхронизация происходит под общим мьютексом. Может быть, там несколько мьютексов на разные случаи. Вообще сейчас того же самого можно (наверное) и так добиться при помощи ssort. Функция ssort берет предиткат для определения порядка. В качестве этого предиката можно передать функцию которая а) гарантировано не изменит порядок сортировки и б) выполнит один раз нужный код с сайд-эффектом. Но не совсем очевидное использование.
 
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Страницы: 1
Читают тему
Наверх