From 28dcfa41315bad69b475a62f7428a03bfa7cd1d6 Mon Sep 17 00:00:00 2001 From: "roberto@oneiric64" Date: Thu, 8 Dec 2011 08:30:25 +0100 Subject: [PATCH] added SpoolProc class in uwsgidsl.rb --- uwsgidsl.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/uwsgidsl.rb b/uwsgidsl.rb index 9345e441..74610c49 100644 --- a/uwsgidsl.rb +++ b/uwsgidsl.rb @@ -14,6 +14,7 @@ end $postfork_chain = [] $mulefunc_list = [] +$spoolfunc_list = [] module UWSGI module_function @@ -21,6 +22,11 @@ module UWSGI $postfork_chain.each {|func| func.call } end + module_function + def spooler(args) + $spoolfunc_list[args['ud_spool_func'].to_i].call(args) + end + module_function def mule_msg_hook(message) service = Marshal.load(message) @@ -62,6 +68,18 @@ def postfork(&block) $postfork_chain << block end +class SpoolProc < Proc + def initialize(&block) + @block = block + @id = (($spoolfunc_list << block).length-1).to_s + end + + def call(args) + args['ud_spool_func'] = @id + UWSGI::send_to_spooler(args) + end +end + def rpc(name, &block) if block.arity <= 0 UWSGI.register_rpc(name, block, 0)