Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Jul 2006 15:27:54 -0400
From:      Michael Scheidell <scheidell@secnap.net>
To:        freebsd-hackers@freebsd.org
Subject:   Re: FBSD 5.5 and software timers
Message-ID:  <44C670BA.6060608@secnap.net>
In-Reply-To: <44C6509E.4090708@secnap.net>
References:  <B3BCAF4246A8A84983A80DAB50FE72424C6970@secnap2.secnap.com>	<20060725.093429.-1648696470.imp@bsdimp.com>	<44C63DD2.9080705@freebsd.org> <44C6509E.4090708@secnap.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44C670BA.6060608>