jdk/src/solaris/native/java/net/net_util_md.h
changeset 22597 7515a991bb37
parent 14342 8435a30053c1
child 22607 ba232b417248
equal deleted inserted replaced
22596:62542b8be764 22597:7515a991bb37
    35 #ifndef USE_SELECT
    35 #ifndef USE_SELECT
    36 #include <sys/poll.h>
    36 #include <sys/poll.h>
    37 #endif
    37 #endif
    38 
    38 
    39 
    39 
    40 #if defined(__linux__) || defined(MACOSX)
    40 /*
       
    41    AIX needs a workaround for I/O cancellation, see:
       
    42    http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf1/close.htm
       
    43    ...
       
    44    The close subroutine is blocked until all subroutines which use the file
       
    45    descriptor return to usr space. For example, when a thread is calling close
       
    46    and another thread is calling select with the same file descriptor, the
       
    47    close subroutine does not return until the select call returns.
       
    48    ...
       
    49 */
       
    50 #if defined(__linux__) || defined(MACOSX) || defined (_AIX)
    41 extern int NET_Timeout(int s, long timeout);
    51 extern int NET_Timeout(int s, long timeout);
    42 extern int NET_Read(int s, void* buf, size_t len);
    52 extern int NET_Read(int s, void* buf, size_t len);
    43 extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
    53 extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
    44        struct sockaddr *from, int *fromlen);
    54        struct sockaddr *from, int *fromlen);
    45 extern int NET_ReadV(int s, const struct iovec * vector, int count);
    55 extern int NET_ReadV(int s, const struct iovec * vector, int count);