瀏覽代碼

fix mutex mistake, rerun autoformatter

Missingmew 5 年之前
父節點
當前提交
3d209720d0
共有 3 個文件被更改,包括 18 次插入4 次删除
  1. 10 3
      cli/src/cmdman.cpp
  2. 2 1
      cli/src/fileman.cpp
  3. 6 0
      cli/src/ioman.cpp

+ 10 - 3
cli/src/cmdman.cpp

@@ -160,9 +160,16 @@ CmdMan::CmdRet CmdMan::cmdList(vector<string> args) {
   CmdRet retval;
   std::cerr << __PRETTY_FUNCTION__ << " begin" << std::endl;
   Json::Value root;
-  root["command"] = "list";
-  retval.type = send;
-  retval.msg = Json::writeString(wbuilder, root);
+
+  bool opened = fileman.openList();
+  if (opened) {
+    root["command"] = "list";
+    retval.type = send;
+    retval.msg = Json::writeString(wbuilder, root);
+  } else {
+    retval.type = error;
+    retval.msg = "cannot list, already listing";
+  }
 
   return retval;
 }

+ 2 - 1
cli/src/fileman.cpp

@@ -5,7 +5,8 @@ FileMan::FileMan() { islisting = false; }
 
 FileMan::~FileMan() {
   cancelGet();
-  closePut();
+  cancelPut();
+  cancelList();
 }
 
 bool FileMan::isGetting() { return getfile.is_open(); }

+ 6 - 0
cli/src/ioman.cpp

@@ -345,6 +345,10 @@ void IoMan::inputMain() {
         printMessage(cmdret.msg, error);
         break;
       }
+      default: {
+        printMessage(string(__PRETTY_FUNCTION__) + string(" unknown rettype"),
+                     debug);
+      }
       }
     }
 
@@ -502,6 +506,7 @@ void IoMan::run() {
   }
   if (loginstatus == err)
     return;
+  initmutex.unlock();
   initcv.notify_all();
 
   mainmutex.lock();
@@ -546,6 +551,7 @@ void IoMan::run() {
       break;
     mainmutex.lock();
   }
+  mainmutex.unlock();
 
   free(line);
 }