lib/openwfe/util/workqueue.rb in ruote-0.9.18 vs lib/openwfe/util/workqueue.rb in ruote-0.9.19
- old
+ new
@@ -1,34 +1,34 @@
#
#--
# Copyright (c) 2007-2008, John Mettraux, OpenWFE.org
# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
+#
+# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
-#
+#
# . Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# . Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
+# list of conditions and the following disclaimer.
+#
+# . Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
-#
+#
# . Neither the name of the "OpenWFE" nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#++
#
#
@@ -41,84 +41,84 @@
require 'openwfe/utils'
module OpenWFE
- class WorkQueue < Service
+ class WorkQueue < Service
- include OwfeServiceLocator
+ include OwfeServiceLocator
- #
- # Inits the WorkQueue
- #
- def service_init (service_name, application_context)
+ #
+ # Inits the WorkQueue
+ #
+ def service_init (service_name, application_context)
- super
+ super
- @queue = Queue.new
+ @queue = Queue.new
- @stopped = false
+ @stopped = false
- thread_name = "#{service_name} (engine #{get_engine.object_id})"
+ thread_name = "#{service_name} (engine #{get_engine.object_id})"
- OpenWFE::call_in_thread thread_name, self do
+ OpenWFE::call_in_thread thread_name, self do
- loop do
+ loop do
- work = @queue.pop
+ work = @queue.pop
- break if work == :stop
+ break if work == :stop
- target, method_name, args = work
+ target, method_name, args = work
- target.send method_name, *args
- end
- end
+ target.send method_name, *args
end
+ end
+ end
- #
- # Returns true if there is or there just was activity for the
- # work queue.
- #
- def busy?
-
- @queue.size > 0
- end
+ #
+ # Returns true if there is or there just was activity for the
+ # work queue.
+ #
+ def busy?
- #
- # Returns the current count of jobs on the workqueue
- #
- def size
+ @queue.size > 0
+ end
- @queue.size
- end
+ #
+ # Returns the current count of jobs on the workqueue
+ #
+ def size
- #
- # Stops the workqueue.
- #
- def stop
+ @queue.size
+ end
- @stopped = true
- @queue.push :stop
- end
+ #
+ # Stops the workqueue.
+ #
+ def stop
- #
- # the method called by the mixer to actually queue the work.
- #
- def push (target, method_name, *args)
+ @stopped = true
+ @queue.push :stop
+ end
- if @stopped
+ #
+ # the method called by the mixer to actually queue the work.
+ #
+ def push (target, method_name, *args)
- target.send method_name, *args
- #
- # degraded mode : as if there were no workqueue
- else
+ if @stopped
- @queue.push [ target, method_name, args ]
- #
- # work will be done later (millisec order)
- # by the work thread
- end
- end
+ target.send method_name, *args
+ #
+ # degraded mode : as if there were no workqueue
+ else
+
+ @queue.push [ target, method_name, args ]
+ #
+ # work will be done later (millisec order)
+ # by the work thread
+ end
end
+ end
end