アカウント名:
パスワード:
私はもっぱらUnixカーネルしかいじらないんですが(本業はどうした)、例外処理を実装するためにgotoを使うことがあります(もちろんC++などは使えない)。例えば...
int some_system_call(...) { int errno; errno = 0; ... mutex_lock(&some_mutex); ... if (...) { errno = EBUSY; goto err; } ... err: mutex_unlock(&some_mutex); return (errno); }
int errno; errno = 0;
mutex_lock(&some_mutex);
if (...) { errno = EBUSY; goto err; }
errno = EBUSY; goto err;
mutex_unlock(&some_mutex); return (errno);
というように、エラーが起きてもロックを確実に解除したい場合に使えますね。if文の中でmutex_unlock()を直接呼び出すと却ってごちゃごちゃしますし、エラーで抜ける個所が複数あるとロックを解除し忘れるなどの問題があります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
Re:書き方も大事?(Re:別に) (スコア:2)
私はもっぱらUnixカーネルしかいじらないんですが(本業はどうした)、例外処理を実装するためにgotoを使うことがあります(もちろんC++などは使えない)。例えば...
というように、エラーが起きてもロックを確実に解除したい場合に使えますね。if文の中でmutex_unlock()を直接呼び出すと却ってごちゃごちゃしますし、エラーで抜ける個所が複数あるとロックを解除し忘れるなどの問題があります。