Skip to content

Commit 8b04d28

Browse files
committed
interrupt()のmutexについて
1 parent 6dc8c9f commit 8b04d28

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

app/terminal/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ runtime.tsx の `useRuntime(lang)` は各言語のフックを呼び出し、そ
1414
* ランタイムの初期化が完了したか、不要である場合true
1515
* mutex?: `MutexInterface`
1616
* ランタイムに排他制御が必要な場合、MutexInterfaceのインスタンスを返してください。
17-
* interrupt?: `() => Promise<void>`
18-
* 実行中のコマンドを中断します。呼び出し側でmutexのロックはされません
17+
* interrupt?: `() => void`
18+
* 実行中のコマンドを中断します。
19+
* 呼び出し側でmutexのロックはしません。interrupt()を呼ぶ際にはrunCommand()やrunFiles()が実行中であるためmutexはすでにロックされているはずです。
20+
* interrupt()内で実行中の処理のPromiseをrejectしたあと、runtimeを再開する際の処理に必要であればmutexをロックすることも可能です。
1921

2022
### REPL用
2123

@@ -25,7 +27,7 @@ runtime.tsx の `useRuntime(lang)` は各言語のフックを呼び出し、そ
2527
* checkSyntax?: `(code: string) => Promise<SyntaxStatus>`
2628
* コードの構文チェックを行います。行がコマンドとして完結していれば`complete`、次の行に続く場合(if文の条件式の途中など)は`incomplete`を返してください。
2729
* REPLでEnterを押した際の動作に影響します。
28-
* 呼び出し側でmutexのロックはされません
30+
* 呼び出し側でmutexのロックはせず、必要であればcheckSyntax()内でロックします。
2931
* splitReplExamples?: `(code: string) => ReplCommands[]`
3032
* markdown内に記述されているREPLのサンプルコードをパースします。例えば
3133
```
@@ -51,7 +53,7 @@ runtime.tsx の `useRuntime(lang)` は各言語のフックを呼び出し、そ
5153
5254
* runFiles: `(filenames: string[]) => Promise<ReplOutput[]>`
5355
* 指定されたファイルを実行します。ファイルの中身はEmbedContextから取得されます。
54-
* 呼び出し側でmutexのロックはされません
56+
* 呼び出し側でmutexのロックはせず、必要であればrunFiles()内でロックします。
5557
* getCommandlineStr: `(filenames: string[]) => string`
5658
* 指定されたファイルを実行するためのコマンドライン引数文字列を返します。表示用です。
5759

0 commit comments

Comments
 (0)