@@ -1312,11 +1312,19 @@ void
1312
1312
usleep (useconds )
1313
1313
NV useconds
1314
1314
PREINIT :
1315
+ #ifndef HAS_NV_GETTIMEOFDAY
1315
1316
struct timeval Ta , Tb ;
1317
+ #else
1318
+ NV Ta_nv , Tb_nv ;
1319
+ #endif
1316
1320
SV * rsv ;
1317
1321
NV RETVAL ;
1318
1322
CODE :
1323
+ #ifndef HAS_NV_GETTIMEOFDAY
1319
1324
gettimeofday (& Ta , NULL );
1325
+ #else
1326
+ Ta_nv = nv_gettimeofday ();
1327
+ #endif
1320
1328
if (items > 0 ) {
1321
1329
if (useconds >= NV_1E6 ) {
1322
1330
IV seconds = (IV ) (useconds / NV_1E6 );
@@ -1334,12 +1342,16 @@ usleep(useconds)
1334
1342
usleep ((U32 )useconds );
1335
1343
} else
1336
1344
PerlProc_pause ();
1337
-
1345
+ #ifndef HAS_NV_GETTIMEOFDAY
1338
1346
gettimeofday (& Tb , NULL );
1339
1347
# if 0
1340
1348
printf ("[%ld %ld] [%ld %ld]\n" , Tb .tv_sec , Tb .tv_usec , Ta .tv_sec , Ta .tv_usec );
1341
1349
# endif
1342
1350
RETVAL = NV_1E6 * (Tb .tv_sec - Ta .tv_sec )+ (NV )((IV )Tb .tv_usec - (IV )Ta .tv_usec );
1351
+ #else
1352
+ Tb_nv = nv_gettimeofday ();
1353
+ RETVAL = NV_1E6 * (Tb_nv - Ta_nv );
1354
+ #endif
1343
1355
TMR_TARGn (rsv , RETVAL , 1 );
1344
1356
SETs (rsv );
1345
1357
return ; /* no PUTBACK no PUSH, 1 in, 1 out */
@@ -1384,11 +1396,19 @@ nanosleep(nsec)
1384
1396
void
1385
1397
sleep (...)
1386
1398
PREINIT :
1399
+ #ifndef HAS_NV_GETTIMEOFDAY
1387
1400
struct timeval Ta , Tb ;
1401
+ #else
1402
+ NV Ta_nv , Tb_nv ;
1403
+ #endif
1388
1404
SV * rsv ;
1389
1405
NV RETVAL ;
1390
1406
PPCODE :
1407
+ #ifndef HAS_NV_GETTIMEOFDAY
1391
1408
gettimeofday (& Ta , NULL );
1409
+ #else
1410
+ Ta_nv = nv_gettimeofday ();
1411
+ #endif
1392
1412
if (items > 0 ) {
1393
1413
NV seconds = SvNV (ST (0 ));
1394
1414
if (seconds >= 0.0 ) {
@@ -1416,12 +1436,16 @@ sleep(...)
1416
1436
"): negative time not invented yet" );
1417
1437
} else
1418
1438
PerlProc_pause ();
1419
-
1439
+ #ifndef HAS_NV_GETTIMEOFDAY
1420
1440
gettimeofday (& Tb , NULL );
1421
1441
# if 0
1422
1442
printf ("[%ld %ld] [%ld %ld]\n" , Tb .tv_sec , Tb .tv_usec , Ta .tv_sec , Ta .tv_usec );
1423
1443
# endif
1424
1444
RETVAL = (NV )(Tb .tv_sec - Ta .tv_sec )+ 0.000001 * (NV )(Tb .tv_usec - Ta .tv_usec );
1445
+ #else
1446
+ Tb_nv = nv_gettimeofday ();
1447
+ RETVAL = Tb_nv - Ta_nv ;
1448
+ #endif
1425
1449
TMR_TARGn (rsv , RETVAL , 1 );
1426
1450
PUSHs (rsv );
1427
1451
PUTBACK ;
0 commit comments