agent_init concurrent running question

Поиск
Список
Период
Сортировка
От Jov
Тема agent_init concurrent running question
Дата
Msg-id CADyrUxOxq6zb+jeM-NUVnfXFy04JKOjRNYy7GNmYP_Fcp90dFw@mail.gmail.com
обсуждение исходный текст
Ответы Re: agent_init concurrent running question
Список pgsql-hackers
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!

В списке pgsql-hackers по дате отправления:

Предыдущее
От: David Rowley
Дата:
Сообщение: Re: Typos in comments
Следующее
От: Rushabh Lathia
Дата:
Сообщение: Re: alter user/role CURRENT_USER