Re: FBSD 5.5 and software timers

[ Available lists | Index of freebsd-hackers | Month of Jul 2006 | Week of 25 Jul 2006 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Michael Scheidell <scheidell@secnap.net>
Date
25 Jul 2006 19:27:55
Subject
Re: FBSD 5.5 and software timers
Message-ID
44C670BA.6060608@secnap.net

In reply to
Referenced by

[ Hide this part ]
Found it!  library libc_r

Given POC:

int main( int argc, char **argv )
{
char execs1[256] = "/bin/date +A%Y%m%d%H%M.%S";
char execs2[256] = "/bin/date +B%Y%m%d%H%M.%S";
int a;

while ( 1) {

system( execs1 );
usleep( 500*1000);
system( execs2 );
}

return 0;
} /* main */

compile with:
cc -g -c nanotest.c
cc -g -o nanotest nanotest.o

everything works as expected.

time forward, back, doesn't matter (date prints out wallclock,
nanosleep() sleeps 500*1000*1000us (.5 seconds)

this breaks it:
cc -g -c nanotest.c
cc -g -o nanotest nanotest.o -lc_r

setting clock back 'hangs' during usleep (500*1000)
didn't hang on 5.4.
I will be writing up a bug report shortly.

--
Michael Scheidell, CTO
SECNAP Network Security / www.secnap.com
scheidell@secnap.net / 1+561-999-5000, x 1131



Elapsed time: 0.348 seconds