Gyakran szükség van arra, hogy amíg egy bonyolultabb adatstrukturát egy
STREAMS driveren vagy modulon belül megváltoztatunk, addig letiltsuk a
megszakításokat. Például azért, mert ha a driver az adatstruktúra
módosítását nem fejezte be, és a muködését megszakítja egy másik driver,
amely az inkonzisztens állapotban levo adatstrukturát tudja csak
módosítani, akkor az egész rendszer épsége veszélyeztetve van. A
kritikus szakasz elején az interruptokat az splstr() hívással
lehet letiltani, a visszatérési értéket a kritikus szakasz végéig kell
eltárolni. A kritikus szakasz végén vissza kell állítani a processzor
interrupt prioritási szintjét az splx() kernel hívás segítségével
a kritikus szakaszba belépés elotti szintre. Ez vázlatosan a
következoképp oldható meg:
rutin()
{
int regispl;
...
regispl=splstr();
...
/* Kritikus szakasz */
...
splx(regispl);
...
}