aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2015-03-14 15:01:46 +0100
committerAlex Auvolat <alex@adnab.me>2015-03-14 15:01:46 +0100
commit51def2fc45d98b59be0413fcb9c25cbb0bbca211 (patch)
tree8b57930186622a8fad2aeb6fa6aac1025f9db224 /src/lib
parent4672f514591f0f7110103c4cd898909aef95b635 (diff)
downloadkogata-51def2fc45d98b59be0413fcb9c25cbb0bbca211.tar.gz
kogata-51def2fc45d98b59be0413fcb9c25cbb0bbca211.zip
Fix blocking channel && channel write on circular-overflow. (see ipc.c)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libkogata/stdio.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/lib/libkogata/stdio.c b/src/lib/libkogata/stdio.c
index 1c298ad..e62aa30 100644
--- a/src/lib/libkogata/stdio.c
+++ b/src/lib/libkogata/stdio.c
@@ -1,4 +1,5 @@
#include <syscall.h>
+#include <string.h>
#include <printf.h>
#include <stdio.h>
@@ -7,12 +8,6 @@
fd_t stdio = 1;
int getc() {
- sel_fd_t fd;
- fd.fd = stdio;
- fd.req_flags = SEL_READ;
- ASSERT(select(&fd, 1, -1));
- ASSERT(fd.got_flags & SEL_READ);
-
char chr;
size_t sz = read(stdio, 0, 1, &chr);
ASSERT(sz == 1);
@@ -26,7 +21,7 @@ void putc(int c) {
}
void puts(char* s) {
- while (*s) putc(*(s++));
+ write(stdio, 0, strlen(s), s);
}
void getline(char* buf, size_t l) {