< prev index next >
src/java.base/linux/native/libnet/linux_close.c
Print this page
*** 365,374 ****
--- 365,378 ----
int NET_Read(int s, void* buf, size_t len) {
BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
}
+ int NET_NonBlockingRead(int s, void* buf, size_t len) {
+ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT) );
+ }
+
int NET_ReadV(int s, const struct iovec * vector, int count) {
BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
}
int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
*** 404,415 ****
/*
* Wrapper for poll(s, timeout).
* Auto restarts with adjusted timeout if interrupted by
* signal other than our wakeup signal.
*/
! int NET_Timeout(int s, long timeout) {
! long prevtime = 0, newtime;
struct timeval t;
fdEntry_t *fdEntry = getFdEntry(s);
/*
* Check that fd hasn't been closed.
--- 408,419 ----
/*
* Wrapper for poll(s, timeout).
* Auto restarts with adjusted timeout if interrupted by
* signal other than our wakeup signal.
*/
! int NET_Timeout0(int s, long timeout,long currentTime) {
! long prevtime = currentTime, newtime;
struct timeval t;
fdEntry_t *fdEntry = getFdEntry(s);
/*
* Check that fd hasn't been closed.
*** 417,434 ****
if (fdEntry == NULL) {
errno = EBADF;
return -1;
}
- /*
- * Pick up current time as may need to adjust timeout
- */
- if (timeout > 0) {
- gettimeofday(&t, NULL);
- prevtime = t.tv_sec * 1000 + t.tv_usec / 1000;
- }
-
for(;;) {
struct pollfd pfd;
int rv;
threadEntry_t self;
--- 421,430 ----
*** 461,465 ****
--- 457,475 ----
return rv;
}
}
}
+
+ int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime) {
+ return NET_Timeout0(s, timeout, currentTime);
+ }
+
+ int NET_Timeout(int s, long timeout) {
+ long currentTime = 0;
+ struct timeval t;
+ if (timeout > 0) {
+ gettimeofday(&t, NULL);
+ currentTime = t.tv_sec * 1000 + t.tv_usec / 1000;
+ }
+ return NET_Timeout0(s, timeout, currentTime);
+ }
< prev index next >