equal
deleted
inserted
replaced
1833 required. Synchronization in Isabelle/ML is based on primitives of Poly/ML, |
1833 required. Synchronization in Isabelle/ML is based on primitives of Poly/ML, |
1834 which have been adapted to the specific assumptions of the concurrent |
1834 which have been adapted to the specific assumptions of the concurrent |
1835 Isabelle environment. User code should not break this abstraction, but stay |
1835 Isabelle environment. User code should not break this abstraction, but stay |
1836 within the confines of concurrent Isabelle/ML. |
1836 within the confines of concurrent Isabelle/ML. |
1837 |
1837 |
1838 A \emph{synchronized variable} is an explicit state component is associated |
1838 A \emph{synchronized variable} is an explicit state component associated |
1839 with mechanisms for locking and signaling. There are operations to await a |
1839 with mechanisms for locking and signaling. There are operations to await a |
1840 condition, change the state, and signal the change to all other waiting |
1840 condition, change the state, and signal the change to all other waiting |
1841 threads. Synchronized access to the state variable is \emph{not} re-entrant: |
1841 threads. Synchronized access to the state variable is \emph{not} re-entrant: |
1842 direct or indirect nesting within the same thread will cause a deadlock!\<close> |
1842 direct or indirect nesting within the same thread will cause a deadlock!\<close> |
1843 |
1843 |