Przeglądaj źródła

Actor: minor change.

Satoshi Yoneda 2 tygodni temu
rodzic
commit
83256da5f5
2 zmienionych plików z 10 dodań i 3 usunięć
  1. 7 1
      README.md
  2. 3 2
      tinykernel/include/tinykernel/actor.hpp

+ 7 - 1
README.md

@@ -221,17 +221,20 @@ tinykernel はデフォルトで RP2350 のデュアルコア SMP(対称型マ
 もし Core 1 を独自の極めてビジーな処理(ベアメタル制御、専用の超高速ループなど)に専有し、tinykernel を Core 0 のみで動かしたい場合は、`TK_ENABLE_SMP` オプションを `OFF` に設定できます。
 
 - **CMake オプション設定**:
+
   ```cmake
   # add_subdirectory(tinykernel) の前に設定する場合
   set(TK_ENABLE_SMP OFF CACHE BOOL "Enable SMP dual-core support" FORCE)
   add_subdirectory(tinykernel)
   ```
+
   またはコマンドラインから設定:
+
   ```bash
   cmake -B build -DTK_ENABLE_SMP=OFF
   ```
-
 - **シングルコア構成時の動作**:
+
   - `multicore_launch_core1()` が実行されず、Core 1 は tinykernel から完全に解放されます(ユーザーコードから自由に `multicore_launch_core1(...)` などを利用可能)。
   - Core 1 用アイドルタスクが生成されないため、利用可能なユーザータスク数が 30 個から 31 個に拡張されます。
 
@@ -432,11 +435,14 @@ If you want to dedicate Core 1 to bare-metal polling / high-frequency routines a
 set(TK_ENABLE_SMP OFF CACHE BOOL "Enable SMP dual-core support" FORCE)
 add_subdirectory(tinykernel)
 ```
+
 or via CLI:
+
 ```bash
 cmake -B build -DTK_ENABLE_SMP=OFF
 ```
 
 When SMP is disabled:
+
 - `multicore_launch_core1()` is not called; Core 1 is untouched and free for custom user control.
 - Max user tasks increase from 30 to 31 (since the Core 1 idle task is omitted).

+ 3 - 2
tinykernel/include/tinykernel/actor.hpp

@@ -298,12 +298,14 @@ protected:
      */
     virtual void on_message(const MsgType& msg) = 0;
 
+
+private:
     /**
      * @brief `Thread::run()` の実装 (メッセージ待ち受け&ディスパッチループ)
      * 
      * メッセージ到着、または `send_signal()` / `stop()` によって起床します。
      */
-    void run() override {
+    void run() final {
         for (;;) {
             MsgType msg{};
             uint32_t save = detail::sched_lock();
@@ -333,7 +335,6 @@ protected:
         }
     }
 
-private:
     MsgType queue_[QueueSize]{};
     size_t head_{0};
     size_t tail_{0};