Re: flock user defined function
От | Doug McNaught |
---|---|
Тема | Re: flock user defined function |
Дата | |
Msg-id | 87zn6vdx6u.fsf@asmodeus.mcnaught.org обсуждение исходный текст |
Ответ на | Re: flock user defined function (Martijn van Oosterhout <kleptog@svana.org>) |
Список | pgsql-general |
Martijn van Oosterhout <kleptog@svana.org> writes: > On Tue, Jun 22, 2004 at 02:49:27PM -0700, Chris Goughnour wrote: >> I'm trying to write two C language user defined functions, lockfile() and >> unlockfile(), that call flock using LOCK_EX and LOCK_UN respectively. If I >> call lockfile from a first psql process it returns successfully. Calling >> lockfile from a second psql process blocks. However, when I call unlockfile >> from the first psql process, the second process still blocks. The lockfile >> call from the second psql proccess doesn't return until I kill the first >> psql process. >> Any suggestions? Thanks in advance. >> Chris Goughnour > > <snip> > > Where do you close the file? That might cause some issues. Yeah, it's generally best not to call LOCK_UN at all, but just to close the file (which will release the locks). Otherwise, if you are using stdio, you can get a situation where the file is unlocked but its stdio buffer has not been flushed, leading to the corruption you were trying to avoid by locking the file... -Doug
В списке pgsql-general по дате отправления: