Slexy.org is shutting down and stopped accepting new Pastes on May 4th, 2021.
Existing Pastes will stop being available on or after May 10th, 2021.
Author: Not specified Language: cpp
Description: Not specified Timestamp: 2017-08-22 12:06:22 +0000
View raw paste Reply
  1.                 auto timeout_at = std::chrono::steady_clock::now() + std::chrono::seconds(timeout);
  2.                 auto retry_at = timeout_at;
  3.                
  4.                 while(timeout == 0 || std::chrono::steady_clock::now() < timeout_at)
  5.                 {
  6.                         auto poll_until          = std::min(timeout_at, retry_at);
  7.                         auto poll_timeout_dur    = poll_until - std::chrono::steady_clock::now();
  8.                         auto poll_timeout_dur_ms = std::chrono::duration_cast<std::chrono::milliseconds>(poll_timeout_dur).count();
  9.                         int  poll_timeout_ms     = std::max((int)(poll_timeout_dur_ms), 0);
  10.                        
  11.                         struct pollfd pfds[1];
  12.                         pfds[0].fd      = tcp_socket;
  13.                         pfds[0].events  = POLLIN;
  14.                         pfds[0].revents = 0;
  15.                        
  16.                         int pret = poll(pfds, 1, poll_timeout_ms);
  17.                         if(pret == -1)
  18.                         {
  19.                                 perror("poll");
  20.                                 return EX_OSERR;
  21.                         }
  22.                         else if(pret == 1)
  23.                         {
  24.                                
  25.                         }
  26.                 }
View raw paste Reply