libprocess是mesos中非常重要的一个基础库,提供一些很方便的helper函数以及并发编程所需要的基本原语,例如下面我将重点讲的future/promise。
为了更好的解释future/promise是什么,我抽取了一段mesos中的代码作为例子:
Future<Socket> PollSocketImpl::accept()
{
return io::poll(get(), io::READ)
.then(lambda::bind(&internal::accept, get()));
}
这个函数的基本作用是:使用io::poll()注册io::READ事件,并且当事件ready的时候,调用internal::accept()。
显然,这是一个异步的accept()方法。