equal
deleted
inserted
replaced
2223 |
2223 |
2224 size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) { |
2224 size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) { |
2225 RESTARTABLE_RETURN_INT(::pread(fd, buf, nBytes, offset)); |
2225 RESTARTABLE_RETURN_INT(::pread(fd, buf, nBytes, offset)); |
2226 } |
2226 } |
2227 |
2227 |
2228 void os::naked_short_sleep(jlong ms) { |
|
2229 struct timespec req; |
|
2230 |
|
2231 assert(ms < 1000, "Un-interruptable sleep, short time use only"); |
|
2232 req.tv_sec = 0; |
|
2233 if (ms > 0) { |
|
2234 req.tv_nsec = (ms % 1000) * 1000000; |
|
2235 } else { |
|
2236 req.tv_nsec = 1; |
|
2237 } |
|
2238 |
|
2239 nanosleep(&req, NULL); |
|
2240 |
|
2241 return; |
|
2242 } |
|
2243 |
|
2244 // Sleep forever; naked call to OS-specific sleep; use with CAUTION |
2228 // Sleep forever; naked call to OS-specific sleep; use with CAUTION |
2245 void os::infinite_sleep() { |
2229 void os::infinite_sleep() { |
2246 while (true) { // sleep forever ... |
2230 while (true) { // sleep forever ... |
2247 ::sleep(100); // ... 100 seconds at a time |
2231 ::sleep(100); // ... 100 seconds at a time |
2248 } |
2232 } |