From: hataejun Date: Thu, 23 Aug 2012 11:06:11 +0000 (+0900) Subject: [Title] package server using thread for response X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e7ac18ec516a1a9b26b8c9566546a7f1d4e99b21;p=sdk%2Ftools%2Fsdk-build.git [Title] package server using thread for response [Type] [Module] [Priority] [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase] --- diff --git a/src/pkg_server/SocketRegisterListener.rb b/src/pkg_server/SocketRegisterListener.rb index fd16273..5115b05 100644 --- a/src/pkg_server/SocketRegisterListener.rb +++ b/src/pkg_server/SocketRegisterListener.rb @@ -8,6 +8,9 @@ require "fileTransfer" require "BuildComm" require "net/ftp" +# mutax for register operation +$register_mutax = Mutax.new + class SocketRegisterListener # initialize @@ -90,7 +93,9 @@ class SocketRegisterListener 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 @@ -136,17 +141,20 @@ class SocketRegisterListener 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)