# Class type Netsys_oothr.mtprovider

    class type mtprovider = object .. end

    method single_threaded : bool

Whether this is a single-threaded program. In this case, a number of methods change their meaning, as described below.

    method create_thread : 's 't. ('s -> 't) -> 's -> thread

In a multi-threaded program: Starts a new thread, and calls the passed function with the passed argument in the new thread (like `Thread.create`). In a single-threaded program: fails.

    method self : thread

In a multi-threaded program: Returns the currently running thread. Subsequent calls of `self` can return different objects for the same thread, but the `id` method will always return the same number. In a single-threaded program: Returns a dummy object (see below).

    method yield : unit -> unit

In a multi-threaded program: gives a hint that another thread should better run now. In a single-threaded program: this is a no-op.

    method create_mutex : unit -> mutex

In a multi-threaded program: Creates a mutex and returns the object. In a single-threaded program: Returns a dummy mutex object (see below).

    method create_condition : unit -> condition

In a multi-threaded program: Creates a condition variable and returns the object. In a single-threaded program: Returns a dummy variable (see below).