## threadkit-driver-for-os.api
#
# This is the interface to an OS specific module that glues the various
# OS-specific scheduling operations together (i.e., timeouts, I/O, signals,
# etc...).
# Compiled by:
#
src/lib/std/standard.lib# This api defines the argtype for the generics:
#
#
src/lib/src/lib/thread-kit/src/glue/threadkit-base-for-os-g.pkg#
src/lib/src/lib/thread-kit/src/glue/thread-scheduler-control-g.pkg# This api is implemented by:
#
#
src/lib/src/lib/thread-kit/src/posix/threadkit-driver-for-posix.pkg#
api Threadkit_Driver_For_Os {
#
start_threadkit_driver: Void -> Void; # Called at start-up time.
wake_sleeping_threads_and_schedule_fd_io_and_harvest_dead_subprocesses__iu: Void -> Void; # Called at pre-emption points.
block_until_some_thread_becomes_runnable: Void -> Bool; # Called when there are no runnable threads.
# If possible blocks until some thread becomes runnable
# (for example due to a timeout or I/O on a pipe or socket)
# and then returns TRUE. If there is no way for anything to
# ever become runnable it returns FALSE. (This is an error condition.)
stop_threadkit_driver: Void -> Void; # Called when the system is shutting down.
};
## COPYRIGHT (c) 1989-1991 John H. Reppy
## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.