home | help
thr_suspend(3C) 	  Standard C Library Functions		 thr_suspend(3C)

NAME
     thr_suspend, thr_continue - suspend or continue thread execution

SYNOPSIS
     cc -mt [ flag... ] file...[ library... ]
     #include <thread.h>

     int thr_suspend(thread_t target_thread);

     int thr_continue(thread_t target_thread);

DESCRIPTION
     The thr_suspend() function immediately suspends the execution of the thread
     specified	by  target_thread.  On successful return from thr_suspend(), the
     suspended thread is no longer executing. Once a thread is suspended, subse-
     quent calls to thr_suspend() have no effect.

     The thr_continue() function resumes the execution of  a  suspended  thread.
     Once  a  suspended  thread is continued, subsequent calls to thr_continue()
     have no effect.

     A suspended thread will not be awakened by any mechanism other than a  call
     to  thr_continue().   Signals  and  the effect of calls tomutex_unlock(3C),
     rw_unlock(3C), sema_post(3C), cond_signal(3C), and  cond_broadcast(3C)  re-
     main  pending  until  the	execution  of  the thread is resumed by thr_con-
     tinue().

RETURN VALUES
     If successful, the thr_suspend() and thr_continue()  functions  return   0.
     Otherwise, a non-zero value is returned to indicate the error.

ERRORS
     The thr_suspend() and thr_continue() functions will fail if:

     ESRCH	     The target_thread cannot be found in the current process.

ATTRIBUTES
     See attributes(5) for descriptions of the following attributes:

     +------------------------------+-----------------------------+
     |	     ATTRIBUTE TYPE	    |	   ATTRIBUTE VALUE	  |
     +------------------------------+-----------------------------+
     | MT-Level 		    |MT-Safe			  |
     +------------------------------+-----------------------------+

SEE ALSO
     thr_create(3C), thr_join(3C), attributes(5), standards(5)

WARNINGS
     The  thr_suspend() function is extremely difficult to use safely because it
     suspends the target thread with no concern for the target	thread's  state.
     The target thread could be holding locks, waiting for a lock, or waiting on
     a condition variable when it is unconditionally suspended.  The thread will
     not  run  until  thr_continue()  is applied, regardless of any calls to mu-
     tex_unlock(), cond_signal(), or cond_broadcast() by other threads. Its  ex-
     istence  on a sleep queue can interfere with the waking up of other threads
     that are on the same sleep queue.

     The thr_suspend() and thr_continue() functions should  be	avoided.  Mecha-
     nisms  that  involve  the cooperation of the targeted thread, such as mutex
     locks and condition variables, should be employed instead.

SunOS 5.10			   22 Mar 2002			 thr_suspend(3C)

home | help