ユーザ用ツール

サイト用ツール


soda:mutex_move

概要

  • Sodaにおけるyield関数をつかった動作について、明らかに遅いので調べてみたところ、Mutex関数が絡んでるのでその記事を書く。

詳細

  • SodaではYield関数を実行する際、RunUntilDone関数の外へ抜けて、SDLへ待ち合わせの命令をかけて、yieldから元の処理に戻すときにSDLと協調する。
  • ただ、現状のバージョンではこの待ち合わせ処理での時間がかかり過ぎて、結果として処理そのものが全体的に遅延している。
  • 原因として考えられるのは、待ち合わせ処理でMiniScriptで実装しているREPLの待ち合わせも行うんだけど、このウェイト時間があまりに大きいせいで、yieldの処理に追加してウェイトが入る状態になってる。

解決策

  • Sodaの内部を修正する。
  • 「interp.REPL(inp, 0.1)」となっている部分の数値を0.01にする。
  • これで待ち時間は減る。
  • ただ、この上だとREPL絡みで問題が起こる可能性があるので、デバッグは必要。
soda/mutex_move.txt · 最終更新: 2025/04/19 21:54 by machiaworx