module: dfmc-modeling author: jonathan bachrach Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND /// Threads define side-effecting stateful dynamic-extent &primitive primitive-make-thread (thread :: , name :: , priority :: , function :: , synchronous? :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-destroy-thread (thread :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-thread-join-single (thread :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-thread-join-multiple (thread-vector :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-thread-yield () => (); define side-effect-free stateless dynamic-extent &primitive primitive-current-thread () => (thread :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-simple-lock (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-recursive-lock (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-semaphore (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-notification (notif :: , lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-simple-lock-timed (lock :: , ms :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-recursive-lock-timed (lock :: , ms :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-semaphore-timed (lock :: , ms :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-wait-for-notification-timed (notif :: , lock :: , ms :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-release-simple-lock (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-release-recursive-lock (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-release-semaphore (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-release-notification (notif :: , lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-release-all-notification (notif :: , lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-make-recursive-lock (lock :: , name :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-destroy-recursive-lock (obj) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-make-simple-lock (lock :: , name :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-destroy-simple-lock (lock :: ) => (res :: ); define side-effect-free stateful dynamic-extent &primitive primitive-owned-simple-lock (lock :: ) => (res :: ); define side-effect-free stateful dynamic-extent &primitive primitive-owned-recursive-lock (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-make-semaphore (lock :: , name :: , init :: , max :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-destroy-semaphore (obj :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-make-notification (lock :: , name :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-destroy-notification (obj :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-sleep (ms :: ) => (); /* define side-effecting stateful dynamic-extent &primitive primitive-assign-atomic-memory (location :: , newval :: ) => (newval); define side-effecting stateful dynamic-extent &primitive primitive-conditional-update-memory (location :: , newval, oldval) => (res :: ); */ define side-effecting stateful indefinite-extent &primitive primitive-allocate-thread-variable (initial-value :: ) => (handle :: ); define side-effect-free dynamic-extent stateless &primitive primitive-read-thread-variable (handle :: ) => (value :: ); define side-effecting stateless dynamic-extent &primitive primitive-write-thread-variable (handle :: , newval :: ) => (newval); define side-effecting stateful dynamic-extent &primitive primitive-initialize-current-thread (thread :: , synchronous? :: ) => (); define side-effecting stateful dynamic-extent &primitive primitive-initialize-special-thread (thread :: ) => (); define side-effecting stateful dynamic-extent &primitive primitive-detach-thread (thread :: ) => (); define side-effecting stateful dynamic-extent &primitive primitive-unlock-simple-lock (lock :: ) => (res :: ); define side-effecting stateful dynamic-extent &primitive primitive-unlock-recursive-lock (lock :: ) => (res :: ); define stateful side-effect-free dynamic-extent &primitive primitive-sequence-point () => (); define side-effecting stateful dynamic-extent &primitive primitive-synchronize-side-effects () => (); // eof