Re: [HACKERS] Threads in PostgreSQL
От | Konstantin Knizhnik |
---|---|
Тема | Re: [HACKERS] Threads in PostgreSQL |
Дата | |
Msg-id | 5677AEE4.9010609@postgrespro.ru обсуждение исходный текст |
Ответ на | Threads in PostgreSQL (sri harsha <sriharsha9992@gmail.com>) |
Список | pgsql-general |
Hi,
PostgreSQL is not using threads but it is possible to spawn thread in your PostgreSQL extensions.
For example, I have used pool of threads in my IMCS extension.
But you need to build your extension with -pthread:
CUSTOM_COPT = -pthread
Also, please take in account that many PostgreSQL functions (even in/out or comparison functions) are not reentrant: them are storing their state in global variables.
So you will get race conditions if you are calling such functions from multiple threads.
Concerning stack overflow, I think that the most probable reason is trivial infinite recursion.
Did you inspect stack trace in debugger?
PostgreSQL is not using threads but it is possible to spawn thread in your PostgreSQL extensions.
For example, I have used pool of threads in my IMCS extension.
But you need to build your extension with -pthread:
CUSTOM_COPT = -pthread
Also, please take in account that many PostgreSQL functions (even in/out or comparison functions) are not reentrant: them are storing their state in global variables.
So you will get race conditions if you are calling such functions from multiple threads.
Concerning stack overflow, I think that the most probable reason is trivial infinite recursion.
Did you inspect stack trace in debugger?
On 21.12.2015 09:21, sri harsha wrote:
Hi,Is it possible to use threads in Postgresql ?? I am using threads in my foreign data wrapper and i get the following error when i use the threads .ERROR: stack depth limit exceededHINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.No matter how much i increase the stack size , the error keeps occurring . How do i solve this problem ??Thanks,Harsha
В списке pgsql-general по дате отправления: