diff options
author | deischen <deischen@FreeBSD.org> | 2003-04-23 21:46:50 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2003-04-23 21:46:50 +0000 |
commit | f8027ceb95ebbec411424424e7be00f63485adb8 (patch) | |
tree | af28d42652346683148a8b0c30e59e30d9b9b8dd /lib/libkse/thread/thr_private.h | |
parent | b86b779077f57b963024aa4ff279e986002d957b (diff) | |
download | FreeBSD-src-f8027ceb95ebbec411424424e7be00f63485adb8.zip FreeBSD-src-f8027ceb95ebbec411424424e7be00f63485adb8.tar.gz |
Protect thread errno from being changed while operating
on behalf of the KSE.
Add a kse_reinit function to reinitialize a reused KSE.
Submitted by: davidxu
Diffstat (limited to 'lib/libkse/thread/thr_private.h')
-rw-r--r-- | lib/libkse/thread/thr_private.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/libkse/thread/thr_private.h b/lib/libkse/thread/thr_private.h index a554796..fc2e4ee 100644 --- a/lib/libkse/thread/thr_private.h +++ b/lib/libkse/thread/thr_private.h @@ -197,6 +197,7 @@ struct kse { #define KF_STARTED 0x0001 /* kernel kse created */ #define KF_INITIALIZED 0x0002 /* initialized on 1st upcall */ int k_waiting; + int k_error; /* syscall errno in critical */ int k_cpu; /* CPU ID when bound */ int k_done; /* this KSE is done */ }; @@ -1014,6 +1015,7 @@ void _set_curkse(struct kse *); struct kse *_kse_alloc(struct pthread *); kse_critical_t _kse_critical_enter(void); void _kse_critical_leave(kse_critical_t); +int _kse_in_critical(void); void _kse_free(struct pthread *, struct kse *); void _kse_init(); struct kse_group *_kseg_alloc(struct pthread *); |