home · contact · privacy
Server/py: Remove superfluous os.fsync().
[plomrogue] / plomrogue-server.py
index e7debbabf4de805acc5c2919c069689cd76f11fe..5af05f7949e2ca18c16bcb3359d0f73d67fc6e10 100755 (executable)
@@ -56,10 +56,9 @@ def prep_library():
 
 
 def strong_write(file, string):
-    """Apply write(string), flush(), and os.fsync() to file."""
+    """Apply write(string), then flush()."""
     file.write(string)
     file.flush()
-    os.fsync(file)
 
 
 def setup_server_io():
@@ -80,6 +79,7 @@ def setup_server_io():
             raise SystemExit(msg)
     io_db["teststring"] = str(os.getpid()) + " " + str(time.time())
     io_db["save_wait"] = 0
+    io_db["verbose"] = False
     io_db["record_chunk"] = ""
     os.makedirs(io_db["path_server"], exist_ok=True)
     io_db["file_out"] = open(io_db["path_out"], "w")
@@ -98,11 +98,11 @@ def cleanup_server_io():
     def helper(file_key, path_key):
         if file_key in io_db:
             io_db[file_key].close()
-            if not io_db["kicked_by_rival"] \
-               and os.access(io_db[path_key], os.F_OK):
-                os.remove(io_db[path_key])
-    helper("file_out", "path_out")
+        if not io_db["kicked_by_rival"] \
+           and os.access(io_db[path_key], os.F_OK):
+            os.remove(io_db[path_key])
     helper("file_in", "path_in")
+    helper("file_out", "path_out")
     helper("file_worldstate", "path_worldstate")
     if "file_record" in io_db:
         io_db["file_record"].close()
@@ -122,7 +122,8 @@ def obey(command, prefix, replay=False, do_record=False):
     is preceded by a server_test() call.
     """
     server_test()
-    print("input " + prefix + ": " + command)
+    if io_db["verbose"]:
+        print("input " + prefix + ": " + command)
     try:
         tokens = shlex.split(command, comments=True)
     except ValueError as err:
@@ -254,6 +255,7 @@ def parse_command_line_arguments():
     parser = argparse.ArgumentParser()
     parser.add_argument('-s', nargs='?', type=int, dest='replay', const=1,
                         action='store')
+    parser.add_argument('-v', dest='verbose', action='store_true')
     opts, unknown = parser.parse_known_args()
     return opts
 
@@ -1611,8 +1613,10 @@ io_db = {
 try:
     libpr = prep_library()
     rand = RandomnessIO()
-    opts = parse_command_line_arguments()
     setup_server_io()
+    opts = parse_command_line_arguments()
+    if opts.verbose:
+        io_db["verbose"] = True
     if None != opts.replay:
         replay_game()
     else: