]> git.stg.codes - stg.git/blobdiff - projects/sgauth/web.h
Fix build on Darwin.
[stg.git] / projects / sgauth / web.h
index d086125c112c80b040abb5b8149bf5510e56736c..a5ec8e6aaf068344a8169990f0c723641804e188 100644 (file)
 
 #include <string>
 #include <list>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wshadow"
+#include <jthread.hpp>
+#pragma GCC diagnostic pop
 
 #ifndef WIN32
-#include <pthread.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
@@ -55,7 +58,6 @@ class WEB
 {
     public:
         WEB();
-        void Run();
         void SetDirName(const std::string & dn, int n);
         void SetRefreshPagePeriod(int p);
         void SetListenAddr(uint32_t ip);
@@ -63,6 +65,7 @@ class WEB
         void UpdateStat(const LOADSTAT & ls);
         void Start();
     private:
+        void Run(std::stop_token token) noexcept;
         void PrepareNet();
         int SendReply();
         int SendCSS();
@@ -70,10 +73,10 @@ class WEB
 
         #ifdef WIN32
         WSADATA m_wsaData;
-        #else
-        pthread_t m_thread;
         #endif
 
+        std::jthread m_thread;
+
         std::string m_dirName[DIR_NUM];
         int m_res;
         int m_listenSocket;