Home English

Kuina-chan

くいなちゃんDec 15, 2017


プログラミング言語Kuin」の「taskライブラリ」についてです。

taskライブラリ

スレッドやプロセスを扱うライブラリ「task.kn」を解説します。
taskライブラリに用意されているものはtaskライブラリの通りです。
taskライブラリ
名前 説明
task@makeMutex ミューテックスクラスのインスタンスを生成する関数
task@makeProcess プロセスを実行ファイルから作成する関数
task@makeThread スレッドを作成する関数
task@open ファイルを関連付けられているアプリで開く関数
task@Mutex ミューテックスクラス
task@Process プロセスクラス
task@Thread スレッドクラス

task@makeMutex

「task@makeMutex」はミューテックスクラスのインスタンスを生成する関数です(task@makeMutex関数の定義)。
task@makeMutex関数の定義

 func makeMutex(): task@Mutex

戻り値 ミューテックスクラスのインスタンス
v.2017.11.17現在、この関数は調整中のため使用できません。

task@makeProcess

「task@makeProcess」はプロセスを実行ファイルから生成する関数です(task@makeProcess関数の定義)。
task@makeProcess関数の定義

 func makeProcess(path: []char, cmdLine: []char): task@Process

path 起動する実行ファイルのパス(.exe)
cmdLine 実行ファイルに渡すコマンドライン引数。 渡さない場合はnullを指定
戻り値 プロセスクラスのインスタンス
「task@makeProcess」が生成する例外はtask@makeProcess関数の例外の通りです。
task@makeProcess関数の例外
発生条件 ビルド 例外コード
(16進数)
プロセスの生成に失敗した dbg、rls E9170009

task@makeThread

「task@makeThread」はスレッドを生成する関数です(task@makeThread関数の定義)。
task@makeThread関数の定義

 func makeThread(threadFunc: func<()>): task@Thread

func 別スレッドで実行する関数
戻り値 スレッドクラスのインスタンス
v.2017.11.17現在、この関数は調整中のため使用できません。
「task@makeThread」が生成する例外はtask@makeThread関数の例外の通りです。
task@makeThread関数の例外
発生条件 ビルド 例外コード
(16進数)
スレッドの生成に失敗した dbg、rls E9170009

task@open

「task@open」はファイルを関連付けられているアプリで開く関数です(task@open関数の定義)。
task@open関数の定義

 func open(path: []char)

path 開くファイルのパス
「task@open」が生成する例外はtask@open関数の例外の通りです。
task@open関数の例外
発生条件 ビルド 例外コード
(16進数)
ファイルが開けなかった dbg、rls E9170009

task@Mutex

「task@Mutex」は排他制御を行うクラスで、定義はtask@Mutexクラスの定義の通りです。
task@Mutexクラスの定義
名前 説明
task@Mutex.lock ロック可能になるまで待ってからロックするメソッド
task@Mutex.tryLock ロック可能ならロックするメソッド
task@Mutex.unlock ロックを解除するメソッド
task@Mutexクラスのインスタンスは、複数スレッド間で共有してはいけません。

task@Mutex.lock

「task@Mutex.lock」はスレッドがロック可能になるまで待ってから、ロック状態にするメソッドです(task@Mutex.lockメソッドの定義)。
task@Mutex.lockメソッドの定義

 func lock()

既に自分のスレッドによってロックされていた場合、この関数はロック解除を待たずに重ねてロック状態にします。
スレッドはロックした回数だけtask@Mutex.unlockメソッドを呼んで解除しなればなりません。

task@Mutex.tryLock

「task@Mutex.tryLock」はスレッドのロック可能ならロック状態にするメソッドです(task@Mutex.tryLockメソッドの定義)。
task@Mutex.tryLockメソッドの定義

 func tryLock(): bool

戻り値 ロック状態にできたらtrue、他スレッドによってロックされていたらfalse
既に自分のスレッドによってロックされていた場合、この関数は重ねてロック状態にします。
スレッドはロックした回数だけtask@Mutex.unlockメソッドを呼んで解除しなればなりません。

task@Mutex.unlock

「task@Mutex.unlock」はスレッドのロック状態を解除するメソッドです(task@Mutex.unlockメソッドの定義)。
task@Mutex.unlockメソッドの定義

 func unlock()

task@Process

「task@Process」はプロセスを扱うクラスで、定義はtask@Processクラスの定義の通りです。
task@Processクラスの定義
名前 説明
task@Process.run プロセスを実行開始するメソッド

task@Process.run

「task@Process.run」はプロセスの実行を開始するメソッドです(task@Process.runメソッドの定義)。
task@Process.runメソッドの定義

 func run(waitUntilExit: bool): int

waitUntilExit 実行が終わるまで待機するならtrue、待機しないならfalse
戻り値 waitUntilExitがtrueならプロセスの戻り値が返る。 waitUntilExitがfalseなら常に0が返る
「task@Process.run」が生成する例外はtask@Process.runメソッドの例外の通りです。
task@Process.runメソッドの例外
発生条件 ビルド 例外コード
(16進数)
プロセスの実行や待機処理に失敗 dbg、rls E9170009

task@Thread

「task@Thread」はスレッドを扱うクラスで、定義はtask@Threadクラスの定義の通りです。
task@Threadクラスの定義
名前 説明
task@Thread.run スレッドを実行開始するメソッド
task@Thread.running スレッドが実行中かどうかを取得するメソッド

task@Thread.run

「task@Thread.run」はスレッドの実行を開始するメソッドです(task@Thread.runメソッドの定義)。
task@Thread.runメソッドの定義

 func run()

「task@Thread.run」が生成する例外はtask@Thread.runメソッドの例外の通りです。
task@Thread.runメソッドの例外
発生条件 ビルド 例外コード
(16進数)
スレッドの実行に失敗 dbg、rls E9170009

task@Thread.running

「task@Thread.running」はスレッドが実行中かどうかを取得するメソッドです(task@Thread.runningメソッドの定義)。
task@Thread.runningメソッドの定義

 func running(): bool

戻り値 実行中ならtrue、開始前もしくは終了後ならfalse
1513347184ja