aboutsummaryrefslogtreecommitdiff
path: root/sys/geom/geom_kern.c
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2003-04-23 21:28:27 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2003-04-23 21:28:27 +0000
commit0a9c130c066e5de650a9dd672f39bbe211969809 (patch)
tree2f6f2067280259902445ac8d739f9808ae338173 /sys/geom/geom_kern.c
parent356e4049dae1c81529a5b6dc58e5a4d48d1e560a (diff)
downloadsrc-0a9c130c066e5de650a9dd672f39bbe211969809.tar.gz
src-0a9c130c066e5de650a9dd672f39bbe211969809.zip
Introduce a g_waitfor_event() function which posts an event and waits for
it to be run (or cancelled) and use this instead of home-rolled versions.
Notes
Notes: svn path=/head/; revision=113940
Diffstat (limited to 'sys/geom/geom_kern.c')
-rw-r--r--sys/geom/geom_kern.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/sys/geom/geom_kern.c b/sys/geom/geom_kern.c
index 38531b75cecd..aa44b9fa4c69 100644
--- a/sys/geom/geom_kern.c
+++ b/sys/geom/geom_kern.c
@@ -172,10 +172,7 @@ sysctl_kern_geom_conftxt(SYSCTL_HANDLER_ARGS)
sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND);
sbuf_clear(sb);
- g_post_event(g_conftxt, sb, M_WAITOK, NULL);
- do {
- tsleep(sb, PZERO, "g_conftxt", hz);
- } while(!sbuf_done(sb));
+ g_waitfor_event(g_conftxt, sb, M_WAITOK, NULL);
error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return error;
@@ -189,10 +186,7 @@ sysctl_kern_geom_confdot(SYSCTL_HANDLER_ARGS)
sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND);
sbuf_clear(sb);
- g_post_event(g_confdot, sb, M_WAITOK, NULL);
- do {
- tsleep(sb, PZERO, "g_confdot", hz);
- } while(!sbuf_done(sb));
+ g_waitfor_event(g_confdot, sb, M_WAITOK, NULL);
error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return error;
@@ -206,10 +200,7 @@ sysctl_kern_geom_confxml(SYSCTL_HANDLER_ARGS)
sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND);
sbuf_clear(sb);
- g_post_event(g_confxml, sb, M_WAITOK, NULL);
- do {
- tsleep(sb, PZERO, "g_confxml", hz);
- } while(!sbuf_done(sb));
+ g_waitfor_event(g_confxml, sb, M_WAITOK, NULL);
error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return error;