Re: Win32 rename()/unlink() questions

Поиск
Список
Период
Сортировка
От Mike Mascari
Тема Re: Win32 rename()/unlink() questions
Дата
Msg-id 3D8ABA3F.6030002@mascari.com
обсуждение исходный текст
Ответ на Re: Win32 rename()/unlink() questions  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Ответы Re: Win32 rename()/unlink() questions  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Re: Win32 rename()/unlink() questionst  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Stephan Szabo wrote:
> On Fri, 20 Sep 2002, Mike Mascari wrote:
>>Bruce Momjian wrote:
>>>Mike Mascari wrote:
>>>>Actually, looking at the pg_pwd code, you want to determine a
>>>>way for:
>>>>
>>>>1. Process 1 opens "foo"
>>>>2. Process 2 opens "foo"
>>>>3. Process 1 creates "bar"
>>>>4. Process 1 renames "bar" to "foo"
>>>>5. Process 2 can continue to read data from the open file handle
>>>>and get the original "foo" data.
>>>
>>>
>>>Yep, that's it.
>>>
>>
>>So far, MoveFileEx("foo", "bar", MOVEFILE_REPLACE_EXISTING)
>>returns "Access Denied" when Process 1 attempts the rename. But
>>I'm continuing to investigate the possibilities...
> 
> 
> Does a sequence like
> Process 1 opens "foo"
> Process 2 opens "foo"
> Process 1 creates "bar"
> Process 1 renames "foo" to <something>
>  - where something is generated to not overlap an existing file
> Process 1 renames "bar" to "foo"
> Process 2 continues reading
> let you do the replace and keep reading (at the penalty that
> you've now got to have a way to know when to remove the
> various <something>s)

Yes! Indeed that does work.

Mike Mascari
mascarm@mascari.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: Win32 rename()/unlink() questions
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: Win32 rename()/unlink() questions