[so] test 6

Marius Nicolae mariusn007 at gmail.com
Fri Nov 16 22:03:34 EET 2007


On Nov 16, 2007 9:49 PM, Lucian Adrian Grijincu
<lucian.grijincu at gmail.com> wrote:
> fie ms = 1000 * X; //X un intreg nenul pozitiv
>
> On Nov 16, 2007 9:35 PM, Marius Nicolae <mariusn007 at gmail.com> wrote:
> > > > sleep(ms/1000);
> Aici faci sleep pe X secunde
>
> > usleep(ms%1000*1000) actually :)
> >
> aici nu faci nici un sleep: 1000 * X %1000 = 0

Pai nici nu trebuie sa fac un sleep, am dormit deja x secunde cu sleep(ms/1000).

Ce incercam sa zic este ca daca am de dormit 2.3 secunde, dorm 2
secunde cu sleep si 0.3 cu usleep

Daca am de dormit 2 secunde, le dorm cu sleep, usleep primeste 0.

By the way, 1000 * X % 1000 e tot timpul 0, din cauza asta am corectat
ordinea operatiilor, ca sa fie ms % 1000 * 1000

> (CRED ca vroiai sa scrii ceva de genul " usleep(ms - ms%1000) " pentru
> a dormi exact X secunde, cum faceai in sleep()-ul de mai sus, but, as
> always, I may be wrong).
>
> to wrap things up:
> <quote>
>    "s m" : clientul face sleep pentru m milisecunde;
> </quote>
>
> sleep doarme multipli de o secunde, so it sucks, we hate it and don't use it.
>
> usleep are o limitare importanta: intoarce EINVAL daca argumentul e
> mai mare decat 1000000 (pe anumite sisteme)
>        EINVAL usec is not smaller than 1000000.  (On  systems  where  that  is
>               considered an error.)
>
> nanosleep poate sa faca sleep si pentru mai mult de o secunda si
> pentru subdiviziuni de secunda.
>
> nu sunt sigur, dar am impresia ca in tema se folosesc valori mai mici
> de 1000 milisecunde, asa ca usleep ar functiona corect, but to be on
> the safe side, use nanosleep:
>
>
>
> > > > On Nov 16, 2007 9:15 PM, Take Ceara <dumitru.ceara at gmail.com> wrote:
> > > > > nanosleep e POSIX si-ti rezolva toate problemele...
> > > > >
>
>
> --
> Lucian
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>


More information about the so mailing list