hello,I am reading the pool manager code,and have some problem: in poolmgr.c function agent_init():
if (agent->pool) > agent_release_connections(agent, false); ...... #ifdef XCP > /* find database */ > agent->pool = find_database_pool(database, user_name); > /* create if not found */ > if (agent->pool == NULL) > agent->pool = create_database_pool(database, user_name); in concurrent running,this function with the same dbname and username,create_database_pool(database, user_name) may be run twice,so there may be more than one DatabasePool in the databasePools list? But find_database_pool(database, user_name) will always return the first find,other may be not used,there may be memory leak? and why this function call agent_release_connections,and then use find_database_pool to get a new pool? For concurrent running,is it possible one agent release the connections which other agent still is in use? thanks! Jov blog: http:amutu.com/blog <http://amutu.com/blog>