请教关于Binder的ServiceManager内存相关的一个问题
在Binder中,handle为0是系统ServiceManager。今天看framework的源码,在\base\cmds\servicemanager\service_manager.c中看到如下代码:
int main(int argc, char **argv)
{
struct binder_state *bs;
void *svcmgr = BINDER_SERVICE_MANAGER;
bs = binder_open(128*1024);
if (binder_become_context_manager(bs)) {
LOGE("cannot become context manager (%s)\n", strerror(errno));
return -1;
}
svcmgr_handle = svcmgr;
binder_loop(bs, svcmgr_handler);
return 0;
}
其中binder_open中分配了128K的内存,但是看了相关的其他代码,并没有发现有地方使用了这128K的内存。既然没有使用,分配这么多内存不是浪费吗?
请高手指教,这里分配的内存的用途是什么?