16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

proces1();<br />

proces2();<br />

return 0;<br />

}<br />

Ależ tu nie ma żadnej współbieżności! Oczywiście. Aby<br />

zrealizować współbieżność musimy zadeklarować bufor na bieżący<br />

stan rejestrów i zastosować funkcje setjmp():<br />

#include <br />

void proces1(void);<br />

void proces2(void);<br />

jmp_buf bufor1;<br />

int main(void)<br />

{<br />

clrscr();<br />

if(setjmp(bufor1) != 0) proces1(); //Powrót z procesu2 był?<br />

proces2();<br />

return 0;<br />

}<br />

Po wywołaniu funkcji setjmp() zostanie utworzony bufor1, w<br />

którym zostanie zapamiętany stan programu. Funkcja, jak zawsze<br />

przy pierwszym wywołaniu zwróci wartość ZERO, więc warunek<br />

if(setjmp(bufor1) != 0) ...<br />

nie będzie spełniony i proces1() nie zostanie wywołany. Program<br />

pójdzie sobie dalej i uruchomi proces2():<br />

void proces2(void)<br />

{<br />

for(;;)<br />

{<br />

gotoxy(10,20);<br />

printf("PROCES 2: ");<br />

for(int i = 1; i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!