From: | Scott Lamb <slamb(at)slamb(dot)org> |
---|---|
To: | Scott Lamb <slamb(at)slamb(dot)org> |
Cc: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, Manfred Spraul <manfred(at)colorfullife(dot)com>, Steve Atkins <steve(at)blighty(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Mixing threaded and non-threaded |
Date: | 2004-01-30 20:08:52 |
Message-ID: | 401AB9D4.8070907@slamb.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Scott Lamb wrote:
> You could just do a pthread_sigmask() before and after the
> pthread_setspecific() to guarantee that no SIGPIPE will arrive on that
> thread in that time. I think it's pretty safe to assume that as long as
> you're not doing a pthread_[gs]etspecific() on that same pthread_key_t,
> it's safe.
Actually, thinking about this a bit more, that might not even be
necessary. Is SIGPIPE-via-(read|write) synchronous or asynchronous?
(I.e., is the SIGPIPE guaranteed to arrive during the offending system
call?) I was thinking not, but maybe yes. I can't seem to find a
straight answer. A lot of documents seem to confuse thread-directed and
synchronous, when they're not quite the same thing. SIGALRM-via-alarm()
is thread-directed but obviously asynchronous.
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2004-01-30 22:43:54 | Re: Question about indexes |
Previous Message | Scott Lamb | 2004-01-30 19:57:52 | Re: Mixing threaded and non-threaded |