Linux hotkey
Miroslav Mraz
mrazik na volny.cz
Sobota Září 18 21:12:13 CEST 2021
Nevím jak je to napsané, ale pokud to čtení má vlastní vlákno, pak by
snad mohlo pomoci místo usleep() použít něco jako
std::this_thread::yield(), příp. sched_yield(), což ukončí běh vlákna a
vrátí řízení plánovači a další čtení proběhne až plánovač opět vlákno
spustí. Ale pořád to může sežrat dost procesorového času, možná je ten
select čistší řešení, ale je to pracné a dneska už to zas tak moc
nefrčí, spíš se používají ta vlákna (máme hodně jader, tak proč ne).
Mrazík
Dne 18. 09. 21 v 15:20 Michal Grunt napsal(a):
> Vyzkouším to, děkuji. To bude asi ono.
>
> Dne pá 17. 9. 2021 16:02 uživatel Ladislav Vaiz <spam na nagano.cz
> <mailto:spam na nagano.cz>> napsal:
>
> Správné řešení pod linuxem je volat v hlavní smyčce select(). Tomu se
> předají filedescriptory, ze kterých chci číst, do kterých chci
> zapisovat
> a případný timeout pro nejbližší časovač.
>
> U GPIO se otevře soubor .../value a jeho descriptor se přidá do
> readfds
> selectu. V obsluze pak:
> lseek(gpio->value_fd, 0, SEEK_SET);
> read(gpio->value_fd, buf, 1);
>
> L.
>
>
> Dne 17.09.2021 v 13:15 Michal Grunt napsal(a):
> > Tak usleep(1) moc nepomůže. Vyžere to 100% CPU. Když zadám
Další informace o konferenci Hw-list