2010-01-01から1年間の記事一覧

ハザードポインタ版Lock-Free List

前回の記事で時間切れのために書ききれなかった Lock-Free List について、サンプルコードをgithubに上げました。 GitHub - yamasa/lockfree: Experimental implementations of lock-free algorithms, using hazard pointers and tagged pointers. sortedlis…

lock-freeアルゴリズムにおけるメモリ回収

これは C++ advent calendar の参加記事です。 もともとは「マルチコア時代のLock-free入門」の補遺として書くつもりだったのが、何だかんだで一年近くほったらかしになってしまっていたので、今回 advent calendar という締切りを課すことでようやく書くこ…

ピーターソンのアルゴリズムとメモリバリア

cacheline awareな何かを作りたい。__attribute__((aligned(64)))で何か。— ロックフリーのkumagi (@kumagi) 2010年10月13日 とkumagiさんが言っていたので、ちょっとしたコードを張り付けてみます。 これは wikipedia:ピーターソンのアルゴリズム の実装例…

今ココなう! iPhone用Webアプリのソースコードを公開

私の作成した今ココなう!のiPhone用Webアプリについて、そのソースコードをgithubにて公開しました。 このWebアプリは、iPhoneだけでなくAndroid2.1以降やFireFox3.5以降、Chrome5やSafari5など、最近のHTML5対応ブラウザでも利用することができます。アプ…

マルチコア時代のLock-free入門

本日、並カンにてLock-freeアルゴリズムについて発表しました。発表資料は以下になります。 なお、今回の発表で割愛したメモリバリアの詳細については、以下の発表資料を参照ください。 そろそろvolatileについて一言いっておくか また、Hazard pointerやタ…

C++0x時代の Double-Checked Locking

今回は "Double-Checked Locking" (以下DCL)というマルチスレッドプログラム向けのイディオムを例にして、C++0xの(低レイヤ向け)マルチスレッド機能の利用方法を紹介してみます。 DCLとは、「ロック→条件判定」というロジックを「条件判定→ロック→(再度)条件…