From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | flyusa2010 fly <flyusa2010(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Using different semaphore for locking |
Date: | 2010-12-05 17:07:15 |
Message-ID: | 26438.1291568835@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
flyusa2010 fly <flyusa2010(at)gmail(dot)com> writes:
> I found that postgres uses different semaphore system call on some different
> operating systems.
> For example, I found that on linux, System V semaphore (semop etc.) is used
> to implement locking, while on Darwin, POSIX semaphore (sem_wait, sem_post
> etc.) is used.
> linux and Darwin support both System V and POSIX semaphores, i'm wondering
> why postgres implement locking using different types of semaphore system
> call. Is there any performance or semantic issue on different OSes?
I think your question is answered in src/template/darwin:
# Select appropriate semaphore support. Darwin 6.0 (Mac OS X 10.2) and up
# support System V semaphores; before that we have to use POSIX semaphores,
# which are less good for our purposes because they eat a file descriptor
# per backend per max_connection slot.
case $host_os in
darwin[015].*)
USE_NAMED_POSIX_SEMAPHORES=1
;;
*)
USE_SYSV_SEMAPHORES=1
;;
esac
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-12-05 17:10:57 | Re: FK's to refer to rows in inheritance child |
Previous Message | Kevin Grittner | 2010-12-05 15:11:35 | serializable read only deferrable |