VirtualBox

Changeset 2473 in kBuild


Ignore:
Timestamp:
Jul 12, 2011 2:14:11 PM (14 years ago)
Author:
bird
Message:

adj.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/test-eintr-bug-1.c

    r2471 r2473  
    44*   Header Files                                                               *
    55*******************************************************************************/
    6 #define _XOPEN_SOURCE
    7 #define _BSD_SOURCE
     6//#define _XOPEN_SOURCE
     7//#define _BSD_SOURCE
    88#include <sys/time.h>
    99#include <sys/stat.h>
     
    1414
    1515
     16volatile unsigned long g_cInts = 0;
     17
    1618static void SigAlaramHandler(int iSig)
    1719{
    18     /* ignore */
     20    g_cInts++;
    1921    (void)iSig;
    2022}
     
    2729    int i;
    2830    int rc;
     31    char szName[256];
    2932
    3033    /*
     
    4245    memset(&TmrVal, '\0', sizeof(TmrVal));
    4346    TmrVal.it_interval.tv_sec  = TmrVal.it_value.tv_sec  = 0;
    44     TmrVal.it_interval.tv_usec = TmrVal.it_value.tv_usec = 1000;
     47    TmrVal.it_interval.tv_usec = TmrVal.it_value.tv_usec = 1;
    4548    rc = setitimer(ITIMER_REAL, &TmrVal, NULL);
    4649    if (rc != 0)
     
    4952        return 1;
    5053    }
     54    printf("interval %d.%06d\n", (int)TmrVal.it_interval.tv_sec, (int)TmrVal.it_interval.tv_usec);
    5155
    5256    /*
    5357     * Do path related stuff.
    5458     */
     59    snprintf(szName, sizeof(szName), "%s/fooled/you", argv[0]);
    5560    for (i = 0; i < 100*1000*1000; i++)
    5661    {
    5762        struct stat St;
    5863        rc = stat(argv[0], &St);
    59         if (rc != 0)
     64        if (rc == 0)
     65            rc = stat(szName, &St);
     66        if (rc != 0 && errno == EINTR)
    6067        {
    61             printf("iteration %d: stat: %u\n", i, errno);
     68            printf("iteration %d: stat: %s (%u)\n", i, strerror(errno), errno);
    6269            break;
     70        }
     71        if ((i % 100000) == 0)
     72        {
     73            printf(".");
     74            if ((i % 1000000) == 0)
     75                printf("[%u/%lu]", i, g_cInts);
     76            fflush(stdout);
    6377        }
    6478    }
    6579
    66     if (rc)
     80    if (!rc)
    6781        printf("No EINTR in %d iterations - system is working nicely!\n", i);
    6882
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette