コード例 #1
0
ファイル: restart.c プロジェクト: JReyLBC/csis4600
ssize_t readtimed(int fd, void *buf, size_t nbyte, double seconds) {
    struct timeval timedone;

    timedone = add2currenttime(seconds);
    if (waitfdtimed(fd, timedone) == -1)
        return (ssize_t) (-1);
    return r_read(fd, buf, nbyte);
}
コード例 #2
0
ファイル: sockets.c プロジェクト: snowhigh/simple_ha
/*
 *                  recvfromtimedone
 * Retrieve information from a file descriptor with
 */
int recvfromtimedone(int fd, void *buf, size_t nbytes, struct sockaddr_in *ubufp,
        struct timeval timedone) {
    unsigned int len = sizeof(struct sockaddr_in);
    struct sockaddr *remote = (struct sockaddr *)ubufp;
    int retval;

    if ((retval = waitfdtimed(fd, timedone)) > 0) {
        while ((retval = recvfrom(fd, buf, nbytes, 0, remote, &len)) == -1) ;
    }

    return retval;
}
コード例 #3
0
ファイル: uiciudp.c プロジェクト: KeyMaker13/portfolio
ssize_t u_recvfromtimed(int fd, void *buf, size_t nbytes, u_buf_t *ubufp,
                         double seconds) {
   int len;
   struct sockaddr *remote;
   int retval;
   struct timeval timedone;

   timedone = add2currenttime(seconds);
   if (waitfdtimed(fd, timedone) == -1)
      return (ssize_t)(-1);
   len = sizeof (struct sockaddr_in);
   remote = (struct sockaddr *)ubufp;
   while (((retval = recvfrom(fd, buf, nbytes, 0, remote, &len)) == -1) &&
           (errno == EINTR)) ;  
   return retval;
}