uexclear Kernel Service

Purpose

Makes a kernel thread blocked by the uexblock service runnable again.

Syntax

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/except.h>

void uexclear ( tid)
tid_t *tid;

Parameter

Item Description
tid Specifies the thread ID of the previously blocked kernel thread to be put into a run state.

Description

The uexclear kernel service puts a kernel thread specified by the tid parameter back into a runnable state after it was made nonrunnable by the uexblock kernel service. A thread that has been sent a SIGSTOP stop signal is made runnable again when it receives the SIGCONT continuation signal.

The uexclear kernel service can be used to lazily control user-mode thread access to a shared serially usable resource. A serially used resource is usable by more than one thread, but only by one at a time. When a thread attempts to access the resource but does not have access, a user-mode exception can be setup to occur.

This setup gives control to an exception handler registered by the uexadd kernel service. Using the uexblock kernel service, this exception handler can then block the thread until the resource is later made available. At that time, the uexclear service can be used to make the blocked thread runnable.

Execution Environment

The uexclear kernel service can be called from either the process or interrupt environment.

Return Values

The uexclear service has no return values.