Date: Tue, 20 Apr 1999 11:45:08 +0200 From: Marc van Kempen <marc@bowtie.nl> To: Graham Wheeler <gram@cdsec.com> Cc: hackers@FreeBSD.ORG Subject: Re: Using select() to implement a delay Message-ID: <199904200945.LAA28715@bowtie.nl> In-Reply-To: gram's message of Tue, 20 Apr 1999 11:21:21 %2B0200. <199904200921.LAA09941@cdsec.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> Hi all > > I have an interesting problem. I have a routine to implement delays: > > void Sleep(int secs, int usecs = 0) > { > struct timeval tv; > tv.tv_sec = secs; > tv.tv_usec = usecs; > (void)select(0, 0, 0, 0, &tv); > } > > I am using this both because it gives better resolution than sleep(), > and also because it doesn't require the use of SIGALRM, which I am > using elsewhere. > > On my development machine, Sleep(60) does exactly what is expected. On > my clients machine, Sleep(60) returns immediately. Both are running > FreeBSD 2.2.7. I don't have access to the clients machine, which is > in another city, and has no development environment, so I can't run gdb, > although it may not give away anything in any case. > > Does anyone have any ideas why the one works and the other doesn't? > Did you try catching the return value from select, it might be getting a signal. Marc. ---------------------------------------------------- Marc van Kempen BowTie Technology Email: marc@bowtie.nl WWW & Databases tel. +31 40 2 43 20 65 fax. +31 40 2 44 21 86 http://www.bowtie.nl ---------------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904200945.LAA28715>