diff --git a/pbatch/pb.rb b/pbatch/pb.rb index c5f9f7f..61ac495 100755 --- a/pbatch/pb.rb +++ b/pbatch/pb.rb @@ -79,24 +79,34 @@ end def increasejobscounter jobscounter = 0 - if File.exists(COUNTERFILE) - File.new(COUNTERFILE, "r+").flock(File::LOCK_EX){|file| - jobscounter = file.read.to_i + if FileTest.exists?(COUNTERFILE) + File.new(COUNTERFILE).flock(File::LOCK_EX) + File.open(COUNTERFILE, "r+"){|file| + jobscounter = file.read + if jobscounter.empty? + jobscounter = 0 + end + jobscounter = jobscounter.to_i jobscounter += 1 file.seek(0) file.puts jobscounter } + File.new(COUNTERFILE, "r+").flock(File::LOCK_UN) else - File.new(COUNTERFILE, "w").flock(File::LOCK_EX){|file| + File.open(COUNTERFILE, "w"){|file| + File.new(COUNTERFILE).flock(File::LOCK_EX) jobscounter = 1 file.puts jobscounter } + File.new(COUNTERFILE, "r+").flock(File::LOCK_UN) end return jobscounter end def addjob p ARGV.join(" ") + jobnumber=sprintf("%06d", increasejobscounter) + p jobnumber end def addjobfromfile