Module Name: src Committed By: pooka Date: Mon Apr 29 13:53:47 UTC 2013
Modified Files: src/lib/librumpuser: rumpuser_bio.c Log Message: unschedule around blocking i/o To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/librumpuser/rumpuser_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/librumpuser/rumpuser_bio.c diff -u src/lib/librumpuser/rumpuser_bio.c:1.1 src/lib/librumpuser/rumpuser_bio.c:1.2 --- src/lib/librumpuser/rumpuser_bio.c:1.1 Mon Apr 29 12:56:04 2013 +++ src/lib/librumpuser/rumpuser_bio.c Mon Apr 29 13:53:46 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpuser_bio.c,v 1.1 2013/04/29 12:56:04 pooka Exp $ */ +/* $NetBSD: rumpuser_bio.c,v 1.2 2013/04/29 13:53:46 pooka Exp $ */ /*- * Copyright (c) 2013 Antti Kantee. All Rights Reserved. @@ -127,6 +127,9 @@ rumpuser_bio(int fd, int op, void *data, struct rumpuser_bio bio; static int inited = 0; static int usethread = 0; + int nlocks; + + rumpuser__unschedule(0, &nlocks, NULL); if (!inited) { pthread_mutex_lock(&biomtx); @@ -170,4 +173,6 @@ rumpuser_bio(int fd, int op, void *data, pthread_cond_signal(&biocv); pthread_mutex_unlock(&biomtx); } + + rumpuser__reschedule(nlocks, NULL); }