88 |
"/etc/bugcomm.conf" |
"/etc/bugcomm.conf" |
89 |
end |
end |
90 |
@version = if defined? $VERSION |
@version = if defined? $VERSION |
91 |
$VESION |
$VERSION |
92 |
else |
else |
93 |
'unknown' |
'unknown' |
94 |
end |
end |
164 |
$stderr.close |
$stderr.close |
165 |
end |
end |
166 |
|
|
167 |
begin |
main() |
|
Thread.start do |
|
|
$SAFE = 2 |
|
|
main() |
|
|
end.join |
|
|
rescue SignalException, Interrupt, ScriptError, NoMemoryError, |
|
|
StandardError, BugCommError => e |
|
|
@@log.err("%s", e.message) |
|
|
@@log.err("%s", e.backtrace.join("\n")) |
|
|
exit(1) |
|
|
end |
|
168 |
end |
end |
169 |
|
|
170 |
def main |
def main |
171 |
|
group = ThreadGroup.new |
172 |
|
|
173 |
while true |
while true |
174 |
Thread.start(Session.new(@socket.accept, @config)) do |session| |
th = Thread.start(Session.new(@socket.accept, @config)) do |session| |
175 |
|
$SAFE = 2 |
176 |
begin |
begin |
177 |
session.run |
session.run |
178 |
rescue ScriptError, NoMemoryError, StandardError, BugCommError => e |
rescue ScriptError, NoMemoryError, StandardError, BugCommError => e |
182 |
session.close |
session.close |
183 |
end |
end |
184 |
end |
end |
185 |
|
|
186 |
|
group.add(th) |
187 |
|
|
188 |
|
while group.list.size >= @config.server_max_threads |
189 |
|
Thread.pass |
190 |
|
end |
191 |
end |
end |
192 |
end |
end |
193 |
private :main |
private :main |