Re: parallel restore vs. windows

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Andrew Chernow <ac(at)esilo(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: parallel restore vs. windows
Date: 2008-12-09 03:01:17
Message-ID: 493DDF7D.6010503@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andrew Chernow wrote:
> Andrew Dunstan wrote:
>>
>> OK, after quite some trying I have hit a brick wall. I have been
>> unable to get parallel restore to work with Windows threading. No
>> doubt I am missing something, but I really don't know what. Unless
>> someone can tell me what I am doing wrong, I have these possibilities:
>>
>> * run parallel steps on Windows in separate processes rather than
>> threads, similar to what we do in the server, or
>> * disable parallel restore on Windows for now.
>>
>>
>> Time is unfortunately running very short.
>>
>> Latest attempt is attached.
>>
>>
>
> We use _beginthread. I don't remember exactely how it broke, but it
> did. Try using the below instead of CreateThread.
>
> // NOTE: if you don't need the returned handle, close it or
> // leaks will occur. Closing it doesn't kill the thread.
> HANDLE h = (HANDLE)_beginthreadex(NULL, 0, thread_start, arg, 0, NULL);

This didn't give me any more joy, unfortunately. But you're right, I
should be using it.

> if(h)
> CloseHandle(h);

Umm, even if I wait on the handle using waitForMultipleObjects() ?

>
> From MSDN:
> "A thread in an executable that calls the C run-time library (CRT)
> should use the _beginthread and _endthread functions for thread
> management rather than CreateThread and ExitThread;"

I am terminating the thread by returning from the thread function. I
understand this is the recommended way.

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Chernow 2008-12-09 03:32:26 Re: parallel restore vs. windows
Previous Message Fujii Masao 2008-12-09 02:39:29 Re: Synchronous replication: sleeping