[lkml]   [2009]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectHR timers prevent an itimer from generating EINTR?

    Mixing HR timers with itimers occasionally hides an EINTR from a
    blocking syscall.


    In my test program I have a High Resolution timer firing every one
    second (with SA_RESTART) and I set an itimer (without SA_RESTART) to
    fire after three seconds. I then execute a blocking system call (flock
    in this case) and expect the three second itimer to interrupt the system
    call with EINTR. However, I frequently notice that the itimer will fire
    but it will not interrupt the blocking system call. There appears to be
    a race between the HR timer firing and the itimer firing. If I offset
    the HR timer frequency by a half second, the itimer always interrupts
    the system call.

    Kernel version:

    These kernels both demonstrate the condition:

    I do not see this condition on:


    Test program:

    The following program illustrates this condition:

    Is this behavior expected?




    Mike Heffner <>

     \ /
      Last update: 2009-09-04 23:37    [W:0.049 / U:1.832 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site