Re: pgsql-server/src/backend/postmaster postmaster.c
| От | Bruce Momjian | 
|---|---|
| Тема | Re: pgsql-server/src/backend/postmaster postmaster.c | 
| Дата | |
| Msg-id | 200311110312.hAB3Cdd07405@candle.pha.pa.us обсуждение исходный текст | 
| Ответ на | Re: pgsql-server/src/backend/postmaster postmaster.c (Neil Conway <neilc@samurai.com>) | 
| Ответы | Re: pgsql-server/src/backend/postmaster postmaster.c | 
| Список | pgsql-committers | 
Neil Conway wrote:
> momjian@svr1.postgresql.org (Bruce Momjian) writes:
> >     * ioctlsocket_ret
> >     - is not initialized to 1 (at least in the WIN_32 code I started
> >       with!)
>
> Couldn't we just use a function for FCNTL_NONBLOCK() instead of a
> macro, and avoid this "ioctlsocket_ret" hackery?
The problem is that the macro needs a holding variable on Win32 and
BeOS:
    #if !defined(WIN32) && !defined(__BEOS__)
    #define FCNTL_NONBLOCK(sock)    fcntl(sock, F_SETFL, O_NONBLOCK)
    #else
    extern long ioctlsocket_ret;
    /* Returns non-0 on failure, while fcntl() returns -1 on failure */
    #ifdef WIN32
    #define FCNTL_NONBLOCK(sock)    ((ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0) ? 0 : -1)
    #endif
    #ifdef __BEOS__
    #define FCNTL_NONBLOCK(sock)    ((ioctl(sock, FIONBIO, &ioctlsocket_ret) == 0) ? 0 : -1)
    #endif
    #endif
We define the variable only on Win32/BeOS.  Any ideas on how to do this
better?
--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
		
	В списке pgsql-committers по дате отправления: