pltcl - cannot create 'normal' interpreter - Tcl_CreateSlave() fails - A solution

Started by Patrick Samsonover 22 years ago3 messagespatches
Jump to latest
#1Patrick Samson
p_samson@yahoo.com

This proposed patch is related to:
http://archives.postgresql.org/pgsql-cygwin/2004-01/msg00024.php

Add a call to Tcl_FindExecutable() in
pltcl.c - pltcl_init_all(),
just before the call to Tcl_CreateInterp().

It should be called with argv[0] as argument, but I
don't know how to get this piece of information for
pltcl.dll. Anyway, for Windows, it is unused
(see win/tclWinFile.c - TclpFindExecutable()). Just a
value != NULL is OK, so I used an empty string.

[Jan Wieck, I'm only interested in cygwin platform.
I suggest you investigate deeper to make this
"workaround" cleaner, in order to be also compatible
with pure Unix platforms.]

Without this call, and with only the setting of the
TCL_LIBRARY environment variable, Tcl_CreateSlave()
seems to fail somewhere else, with this message:
--------------------------
server closed the connection unexpectedly
This probably means the server terminated
abnormally
before or while processing the request.
The connection to the server was lost.
Attempting reset: Succeeded.
--------------------------
I didn't spend time on this issue, just added the
call.

My proposed patch generated with:
$ diff -u pltcl.orig pltcl.c
is attached.

__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus

Attachments:

diff_pltcl.txttext/plain; name=diff_pltcl.txtDownload+12-2
#2Peter Eisentraut
peter_e@gmx.net
In reply to: Patrick Samson (#1)
Re: pltcl - cannot create 'normal' interpreter - Tcl_CreateSlave() fails - A solution

Patrick Samson wrote:

This proposed patch is related to:
http://archives.postgresql.org/pgsql-cygwin/2004-01/msg00024.php

First of all, you cannot change the order of postgres.h and tcl.h --
period.

Secondly, no // comments, no "personal" comments, no mailing list
archive references. Explain the issues in the code.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Patrick Samson (#1)
Re: pltcl - cannot create 'normal' interpreter - Tcl_CreateSlave() fails - A solution

Patrick Samson <p_samson@yahoo.com> writes:

Add a call to Tcl_FindExecutable() in
pltcl.c - pltcl_init_all(),
just before the call to Tcl_CreateInterp().

It should be called with argv[0] as argument, but I
don't know how to get this piece of information for
pltcl.dll. Anyway, for Windows, it is unused
(see win/tclWinFile.c - TclpFindExecutable()). Just a
value != NULL is OK, so I used an empty string.

AFAICS this patch breaks all non-Windows platforms. Sorry, that
won't do ...

regards, tom lane