--- nono/host/hostdevice.h 2026/04/29 17:05:47 1.1.1.7 +++ nono/host/hostdevice.h 2026/04/29 17:05:56 1.1.1.9 @@ -13,7 +13,7 @@ #include "thread.h" #include "autofd.h" #include "kevent.h" -#include +#include "rwlock.h" using DeviceCallback_t = void (Device::*)(uint32); #define ToDeviceCallback(f) static_cast(f) @@ -38,7 +38,6 @@ class HostDevice : public ThreadDevice ~HostDevice() override; bool Create2() override; - bool Init() override; void Terminate() override; @@ -92,8 +91,10 @@ class HostDevice : public ThreadDevice // 親デバイスのポート名 (UI 表示用) std::string portname {}; - // ドライバ切り替えから保護するため。TODO: rwlock - std::mutex driverlock {}; + // ドライバ切り替えから保護するため。 + // 使うほうは読み書きに関わらず Read ロック。 + // ドライバの切り替えが Write ロック。 + RWLock driverlock {}; autofd kq {};