diff options
Diffstat (limited to '091socket.cc')
-rw-r--r-- | 091socket.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/091socket.cc b/091socket.cc index bd3f4ed6..74626853 100644 --- a/091socket.cc +++ b/091socket.cc @@ -218,7 +218,6 @@ case _READ_FROM_SOCKET: { } :(before "End Primitive Recipe Implementations") case _READ_FROM_SOCKET: { - cerr << "$read-from-socket\n"; long long int x = static_cast<long long int>(ingredients.at(0).at(0)); socket_t* socket = reinterpret_cast<socket_t*>(x); // 1. we'd like to simply read() from the socket @@ -228,22 +227,19 @@ case _READ_FROM_SOCKET: { // 3. but poll() will block on EOF, so only use poll() on the very first // $read-from-socket on a socket if (!socket->polled) { + socket->polled = true; pollfd p; bzero(&p, sizeof(p)); p.fd = socket->fd; p.events = POLLIN | POLLHUP; - if (poll(&p, /*num pollfds*/1, /*timeout*/100/*ms*/) <= 0) { + if (poll(&p, /*num pollfds*/1, /*no timeout*/-1) <= 0) { raise << maybe(current_recipe_name()) << "error in $read-from-socket\n" << end(); products.resize(2); products.at(0).push_back(0); products.at(1).push_back(false); break; } - cerr << "poll output: " << p.revents << '\n'; - cerr << "setting socket->polled\n"; - socket->polled = true; } - cerr << "$read-from-socket " << x << " continuing\n"; int bytes = static_cast<int>(ingredients.at(1).at(0)); char* contents = new char[bytes]; bzero(contents, bytes); |