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