Skip site navigation (1)Skip section navigation (2)
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>