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