uexblock 内核服务
用途
使当前活动的内核线程在从用户方式异常处理程序调用时不可运行。
语法
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/except.h> void uexblock ( tid)
tid_t *tid;
tid_t *tid;
参数
| 项 | 描述 |
|---|---|
| tid | 指定当前活动的内核线程的线程标识,该线程将进入等待状态。 |
描述
uexblock内核服务会将tid参数指定的当前活动内核线程置于等待状态,直到使用uexclear内核服务使线程再次可运行。 如果从进程环境中调用uexblock内核服务,tid参数必须指定当前活动线程,否则系统会因内核恐慌而崩溃。
uexblock内核服务可用于控制用户模式线程对共享串行可用资源的访问。 多个线程可以使用连续使用的资源,但一次只能有一个进程。 当线程尝试访问资源但无法访问该资源时,可以将用户方式异常设置为发生。 这就将控制权交给了由uexadd内核服务注册的异常处理程序。 然后,该异常处理程序可以使用uexblock内核服务阻塞线程,直到资源可用。 此时,可以使用uexclear内核服务使被阻塞的线程可以运行。
执行环境
返回值
uexblock服务没有返回值。