summaryrefslogtreecommitdiff
path: root/sys/src/libthread/ioproc.c
diff options
context:
space:
mode:
authorAlex Musolino <alex@musolino.id.au>2020-12-15 20:55:41 +1030
committerAlex Musolino <alex@musolino.id.au>2020-12-15 20:55:41 +1030
commit3749e92cdb88a157f99c0709a264bd508603be9b (patch)
tree49ce703965ba4114490729c5aeabd9ba120d9b78 /sys/src/libthread/ioproc.c
parent404c901f299c4d93cb159a3c44c2977a25408319 (diff)
parent32291b52bcbd6976051acff1692b571e321ac859 (diff)
merge
Diffstat (limited to 'sys/src/libthread/ioproc.c')
-rw-r--r--sys/src/libthread/ioproc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/src/libthread/ioproc.c b/sys/src/libthread/ioproc.c
index 32be31026..1ee56c4f3 100644
--- a/sys/src/libthread/ioproc.c
+++ b/sys/src/libthread/ioproc.c
@@ -19,6 +19,15 @@ iointerrupt(Ioproc *io)
qunlock(io);
}
+static int
+openprocctl(void)
+{
+ char buf[32];
+
+ snprint(buf, sizeof(buf), "/proc/%lud/ctl", (ulong)getpid());
+ return open(buf, OWRITE|OCEXEC);
+}
+
static void
xioproc(void *a)
{
@@ -28,15 +37,11 @@ xioproc(void *a)
c = a;
if(io = mallocz(sizeof(*io), 1)){
- char buf[128];
-
/*
* open might fail, ignore it for programs like factotum
* that don't use iointerrupt() anyway.
*/
- snprint(buf, sizeof(buf), "/proc/%d/ctl", getpid());
- io->ctl = open(buf, OWRITE);
-
+ io->ctl = openprocctl();
if((io->creply = chancreate(sizeof(void*), 0)) == nil){
if(io->ctl >= 0)
close(io->ctl);