お世話になっています。
以下のURLで mbed という組み込みOSに関連する話です。
https://os.mbed.com/docs/mbed-os/v5.9/reference/mutex.html
Thread t2;
t2.start(callback(test_thread, (void *)"Th 2"));
void test_thread(void const args) {
while (true) {
notify((const char)args, 0); wait(1);
notify((const char*)args, 1); wait(1);
}
}
t2.start() によって test_thread() が実行されるのだろうという想像はできます。
Threadのところの説明を見ると、start()メソッドの構文は以下のようになっています。
https://os.mbed.com/docs/mbed-os/v5.14/mbed-os-api-doxy/classrtos_1_1_thread.html
(1) start (mbed::Callback< void()> task)
(2) start (T *obj, M method)
上の例の場合、start()の引数がひとつなので(1)の構文が使われているのでしょうか?
mbed::Callback< void()> task の部分の意味が理解できないので、教えていただけないでしょうか?
また、t2.start(callback(test_thread, (void *)"Th 2")); のところの
callback (先頭の c が小文字)はどこから来たキーワード?なのでしょうか?
初心者なので、わかりやすく教えていただけると助かります。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー