Create_semaphore

sql

FUNCTION Create_semaphore(IN sname CHAR(31); IN snum INT) returns INT;

Parametry

sname jméno semaforu
snum pro kolik vláken bude po vytvoření otevřen

Od verze:

6.1

Popis

Procedura je určena výhradně k použití v příkazech jazyka SQL.

Funkce vytvoří semafor označený jménem sname (pokud takový semafor dosud neexistuje) a vrátí jeho handle, který se použije ve všech dalších operacích vlákna s tímto semaforem.

Pokud dvě vlákna volají tuto funkci se stejným jménem sname, pak obdrží handle ke stejnému semaforu - tyto handly však nemusí mít nutně stejnou hodnotu, proto každé vlákno musí používat vlastní handle získaný touto funkcí.

Vytvořený semafor bude otevřen pro vstup snum vláken, což znamená, že snum vláken může provést funkci Wait_for_semaphore bez čekání, zatímco případná další vlákna budou v této funkci čekat na provedení funkce Release_semaphore jiným vláknem. Jako hodnota snum se nejčastěji používá 0 (semafor uzavřen) nebo 1 (semafor otevřen pro jedno vlákno). Hodnota snum se uplatní pouze u prvního vlákna volajícího funkci Create_Semaphore s určitým jménem, pokud funkce vrací handle k již existujícímu semaforu, hodnota snum se ignoruje.

Více o synchronizaci vláken - podrobnosti.

Hodnota funkce

Funkce vrací při úspěchu identifikaci (handle) vytvořeného semaforu, při neúspěchu nulu.

Viz