require "BuildComm"
require "net/ftp"
+# mutax for register operation
+$register_mutax = Mutax.new
+
class SocketRegisterListener
# initialize
handle_cmd_upload( req_line, req )
}
when "REGISTER"
- handle_cmd_register( req_line, req )
+ Thread.new {
+ handle_cmd_register( req_line, req )
+ }
when "STOP"
handle_cmd_stop( req_line, req )
else
idx = idx + 1
end
- begin
- @parent_server.reload_dist_package()
- snapshot_name = @parent_server.register( file_path_list, dist_name, true, false, true)
- rescue => e
- @log.error "register failed"
- @log.error e.message
- @log.error e.backtrace.inspect
- BuildCommServer.send(req, "ERROR|#{e.message}")
- @parent_server.release_lock_file
- return
- end
+ # register mutax
+ $register_mutax.synchronize {
+ begin
+ @parent_server.reload_dist_package()
+ snapshot_name = @parent_server.register( file_path_list, dist_name, true, false, true)
+ rescue => e
+ @log.error "register failed"
+ @log.error e.message
+ @log.error e.backtrace.inspect
+ BuildCommServer.send(req, "ERROR|#{e.message}")
+ @parent_server.release_lock_file
+ return
+ end
+ }
BuildCommServer.send(req,"SUCC|#{snapshot_name}")
BuildCommServer.send_end(req)