Aktywne Wpisy

JanDzbanPL +57
Scifun założył patronite w celu szybszej produkcji materiałów i od tego czasu nic nie opublikował. W ciągu roku opublikował tylko jeden film o Titanie podzielony sprytnie na 3 filmiki - jeszcze przed założeniem patronite. 50k miesięcznie, 320k łącznie za nic. W ogóle mnie to nie dziwi że Polacy kupują pizzę z serem po 60zl ( ͡° ͜ʖ ͡°) #polskiyoutube #scifun
źródło: 1000019588
Pobierz
https://www.youtube.com/watch?v=mJxbSDpTUWc
Rumuński Pies użył mikrofonu w odpowiedzi na film #snakeiter XDDD
#kiszak
Rumuński Pies użył mikrofonu w odpowiedzi na film #snakeiter XDDD
#kiszak





Jak byście zrobili funkcje produce i consume do problemu producent-konsument, jeśli consume pobierałby jako argument wartość, którą ma pobrać z bufora. Jeśli w buforze nie byłoby tej wartości to by się zawieszał?
read()i
select(). Jeśli chodzi o zwrócenie wartości to errorkod albo wyjątek to praktycznie to samo, ale skoro #posix to raczej #jezykc niż #cpp, więc errorkod.
@ronin12: Konsument pobiera jako parametr liczbę, na którą ma czekać, aż się pojawi w buforze. Jak zrobić zwykłego producenta-konsumenta, to wiem :D
- void produce(int product) - dodaje do bufora (np. tablicy o stałym rozmiarze, czytanej i pisanej cyklicznie) nową liczbę (product),
- int consume(int awaitedProduct) - sprawdza czy jest w buforze liczba awaitedProduct, a jeśli nie ma to się blokuje, do czasu gdy się pojawi. Jeśli jest, to po prostu ją zwraca.
Przykładowa
Btw, po co konsumer zwraca wartość? Zgodnie z tym co rozumiem, zwrócona wartość zawsze będzie równa tej podanej do funkcji.
- 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