複数のfutureを待つプリミティブ

気がついたら3ヶ月近くも更新してなくてビビった(^^;
Lambda-The-Ultimateを見ていたら,複数のfutureを待つプリミティブが必要,みたいな話があったので少し.

次世代のC++規格の中にfutureが提案されているそうです.
(そうなると,PARDSの有用性が下がっちゃうんだど,それでもforkを使うのでスレッドセーフかどうか気にせず並列化できるという利点はまだあります.)
で,その議論の中で,「複数のfutureのうち,どれかが書き込まれたら動作を開始する,という仕組みが無いのはおかしい」みたいな話があったそうな.要するに,UNIXでいうselectのような動作ですね.

でもどうなんだろ.複数のfutureそれぞれに対して,値が決まったら動作する関数を作っておいて,それらが早い者勝ちである同期用データ構造に書き込むことができれば,それに対して待ち合わせればselectは実装可能だよなぁ.

もしかして,futureって本当にfutureで(並列論理型言語の論理変数みたいなのじゃなく),変数定義時に誰が書き込むか確定してしまうのか知らん?だとすると,早い者勝ちは書けないなぁ.
というか,もしそうだとすると,それはそれであれだなぁ.I-structure/論理変数的なものの方が便利だと思うけど.