Skip site navigation (1) Skip section navigation (2)

Re: Win32 open items

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Re: Win32 open items
Date: 2004-10-26 15:07:45
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers-win32
> > The problem with this is that PQrequestCancel() is not thread-safe.
> What is your basis for asserting that?

Looking at the source code?

We are talking about two different threads *accessing the same PGconn*.
For example:
	if (conn->sock < 0)
			   "PQrequestCancel() -- connection is not
		conn->errorMessage.len =
#ifdef WIN32
		errno = save_errno;
		return FALSE;

What if another thread is modifying or reading the errorMessage variable
at the same time? Or what if another thread just PQfinished() the entire
conenction, which causes a free() call? None of this stuff is

It may be re-entrant-safe, but I don't beleive it's thread safe. libpq
in general is only thread safe as long as a single connection is only
used on a single thread.


pgsql-hackers-win32 by date

Next:From: Andrew DunstanDate: 2004-10-26 15:34:46
Subject: Re: pg_ctl strangeness under msys
Previous:From: Tom LaneDate: 2004-10-26 14:41:09
Subject: Re: Win32 open items

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group