FreeMat
|
Section: FreeMat Threads
The threadwait
function waits for the given thread to complete execution, and stops execution of the current thread (the one calling threadwait
) until the given thread completes. The syntax for its use is
success = threadwait(handle)
where handle
is the value returned by threadnew
and success
is a logical
vaariable that will be 1
if the wait was successful or 0
if the wait times out. By default, the wait is indefinite. It is better to use the following form of the function
success = threadwait(handle,timeout)
where timeout
is the amount of time (in milliseconds) for the threadwait
function to wait before a timeout occurs. If the threadwait
function succeeds, then the return value is a logical 1
, and if it fails, the return value is a logical 0
. Note that you can call threadwait
multiple times on a thread, and if the thread is completed, each one will succeed.
Here we lauch the sleep
function in a thread with a time delay of 10 seconds. This means that the thread function will not complete until 10 seconds have elapsed. When we call threadwait
on this thread with a short timeout, it fails, but not when the timeout is long enough to capture the end of the function call.
--> a = threadnew; --> threadstart(a,'sleep',0,10); % start a thread that will sleep for 10 --> threadwait(a,2000) % 2 second wait is not long enough ans = 0 --> threadwait(a,10000) % 10 second wait is long enough ans = 1 --> threadfree(a)