/usr/share/doc/gridengine-drmaa-dev/examples/ruby/threads.rb is in gridengine-drmaa-dev 8.1.9+dfsg-7build1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | #!/usr/bin/ruby
#########################################################################
#
# The Contents of this file are made available subject to the terms of
# the Sun Industry Standards Source License Version 1.2
#
# Sun Microsystems Inc., March, 2006
#
#
# Sun Industry Standards Source License Version 1.2
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.2 (the "License"); You may not use this file
# except in compliance with the License. You may obtain a copy of the
# License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2006 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
#########################################################################
require 'drmaa'
require 'thread'
class Sleeper < DRMAA::JobTemplate
def initialize
super
self.command = "/bin/sleep"
self.arg = ["1"]
self.stdout = ":/dev/null"
self.join = true
end
end
# Submit a bunch of jobs from a number of threads
# and wait for them in main thread.
#
# Note: Ruby threads are not identical with operating
# system threads.
version = DRMAA.version
drm = DRMAA.drm_system
puts "DRMAA #{drm} v #{version}"
session = DRMAA::Session.new
t = Sleeper.new
i = 0
while i<4 do
Thread.start do
j = 0
while j<20 do
puts "job: " + session.run(t)
j += 1
end
end
i += 1
end
session.wait_each{ |info|
job = info.job
if ! info.wifexited?
puts "failed: " + info.job
else
puts info.job + " returned with " + info.wexitstatus.to_s
end
}
exit 0
|