whisper.cpp/bindings/ruby/lib/whisper/log_settable.rb

37 lines
762 B
Ruby

require "mutex_m"
module Whisper
module LogSettable
class << self
def extended(base)
base.extend Mutex_m
end
end
private
def start_log_callback_thread
return if @log_callback_thread&.alive?
@log_callback_thread = Thread.new {
begin
while logs = drain_logs
begin
callback, user_data = synchronize {[@log_callback, @log_callback_user_data]}
next if callback.nil?
logs.each do |(level, text)|
callback.call level, text, user_data
end
rescue => err
$stderr.puts err
end
end
rescue => err
$stderr.puts err
end
}
end
end
end