Actually, I used palloc() to set the stack base address.
And I am trying to create only a single thread, then also it is causing
problem.
Actually, I created all the data-structures using palloc(), then I am
passing these to the child thread. Even if I make these variables global
then also it is not working.
But if I don't set its stack address then it is working. But I need to do
that because when my thread body is big then it is causing stack fault.
So if I cannot set its stack address then Can I increase the stack depth
limit to a large value ?

--

Thank You,
Subham Roy.
On 22/09/10 11:14, subham@cse.iitb.ac.in wrote:

How can I increase the stack depth limit ? Is it only by modifying the
postgres.conf file, but there I cannot increase the stack depth beyond 4
MB.

Actually, my problem is that, when I set the stack base address of the
child thread using the POSIX library function "pthread_setstackaddr()",
I
am unable to access the memory contents of its parent. The
data-structures
in the parent are either getting destroyed or unaccessible when moving
to
the context of the child thread.
It is not a good idea to use threads in server code. PostgreSQL server
code is not thread-safe, things will break.

Assuming that you're not actually doing that but using threads in the
client instead, max_stack_depth should have no effect on you as it only
affects the server.

But you really should find another way to communicate between threads.
Stacks should be treated as thread-private. Use malloc() or something
and global variables.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 7 of 11 | next ›
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedAug 4, '10 at 6:35p
activeSep 23, '10 at 12:40p
posts11
users5
websitepostgresql.org...
irc#postgresql

People

Translate

site design / logo © 2022 Grokbase