concurrent

c/c++pascal

void [cd_]concurrent([cdp_t cdp], BOOL state);
procedure [cd_]concurrent([cdp : cdp_t]; state : Boolean);

Parametry

state TRUE zapíná a FALSE vypíná souběžnou práci klienta a serveru
[cdp kontextová proměnná klienta]

Popis

Procedura zapíná nebo vypíná souběžnou práci klient a serveru.

Je-li parametr state roven FALSE, pak se po předání každého požadavku, který není obsažen v balíku, čeká na jeho provedení.

Je-li parametr state roven TRUE, bude komunikace probíhat v režimu souběžného zpracování. V tomto režimu zavolání funkce databázového jádra způsobí vyslání požadavku do serveru, ale (z důvodů efektivnějšího fungování) se nečeká na výsledek. Po návratu z volání nemusí být tedy ve výstupních parametrech žádná smysluplná hodnota. Ta se do nich zapíše teprve poté, až přijde od serveru odpověď.

Pozor ! Uvědomte si, že důsledkem toho mohou být zcela asynchronní změny obsahu proměnných, na něž byla spuštěna operace čtení!

Klient může zjistit, zda na jeho poslední požadavek již přišla odpověď, když zavolá funkci answered. Její hodnota FALSE signalizuje, že odpověď dosud nedošla.

Pokud klient vyšle další požadavek před obdržením odpovědi na předchozí požadavek, je tento nový požadavek pozdržen do příchodu odpovědi. Bezprostředně poté je nový požadavek komunikační knihovnou odeslán. Pro klienta pak neexistuje způsob, jak zjistit úspěch či neúspěch provedení prvního z těchto požadavků. Proto takový postup nedoporučujeme.

Funkce Break, která ruší právě prováděný požadavek, pracuje asynchronně bez ohledu na to, zda je povolena souběžná práce.

Po provedení funkce interf_init je souběžné zpracování vypnuto.

Viz