#linux #posix #programowanie #embedded #c #programista15k

Mirasy mam pytanko.

Mam 2 wątki i korzystam z POSIX i języka C.

Jeden wątek po wciśnięciu klawisza zmienia wartość.
Drugi wątek odczytuje czy została zmieniona wartość i ją wyświetla, następnie idzie spać (sleep(2)) i wygasza wyświetlacz.

Jak zrobić, żeby po okreslonym czasie wątek wygasił wyświetlacz, lecz gdy w trakcie wątek 1 zmieni wartośc to wybudzi go i wyświetli odrazu zmianę na wyświetlaczu ?
Hej,
Co zastosowalibyście w celu rozwiązania problemu, że klasa Writer potrzebuje wysłać dane do X wątków. (Nie rozdziela tych danych) tylko wysyła do każdego wszystko co ma. W sumie wystarczyła by jakaś globalny vector tylko skąd wiedzieć, że wszystkie wątki już sobie dane pobrały ( i można je unicestwić). (najlepiej, żeby nie trzeba było blokować odczytu -- w sensie, nowy element będzie można odczytać kiedy będzie kompletny w pamięci i wszystkie wątki
@lionbest: sprawa jest bajecznie prosta bo to na x soketach wysyłam te same dane. Kwestia tylko upewnienia się że ich nie zgubie. Napisałem to po swojemu i dziala. Ale chciałbym bardziej składnia C++ i całkowicie poprawnie :)

Jutro przyjrzę się dokładnie temu co napisałeś, bo nie jest to latwe.

Właśnie przykłady to jest coś co zawsze ciężko dobrac, niektóre są oczywiste niektóre poruszają dobry temat ale tylko dla 2 wątków a
#linux #posix #ieee #programowanie

Wyrażenia regularne (BRE i ERE) zostały zdefiniowane w POSIX. On został zdefiniowany w standardzie POSIX.1-2008 (czyli IEEE Std 1003.1-2008).

Specyfikacja standardu jest do kupienia tutaj:
http://standards.ieee.org/findstds/standard/1003.1-2008.html

To w takim razie co to jest to?
http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html
Wygląda na to samo co wyżej.

Mogę to czytać za free (i nie to że jakiś pirat wrzucił, tylko jest oficjalna "The Open Group" i to z 2013 roku). Nie ogarniam (czemu
Wiesz, ubuntu też można kupić na płytce, pomimo że jest darmowy :P Wymyślą sobie że masz dokumenty w lepszej jakości czy coś i każą za to zapłacić. Na wszystkim można zrobić biznes ( ͡° ͜ʖ ͡°)
@Sn3jku: Pomyślałem już o tym. Chciałem zrobić to tak:

- jeden semafor (full) inicjowany zerem mówi ile jest zajętych miejsc w buforze,

- jeden semafor (empty) inicjowany maksymalną pojemnością bufora, mówi ile jest zajętych miejsc w buforze,

- jest jeden mutex synchronizujący dostęp do bufora.

Standardowo to by było tak (up - podniesienie semafora, down - opuszczenie):

produce(int i)

{

down(empty);

down(mutex);

//wstawienie do bufora

up(mutex);

up(full);

}

int consume()

{