diff options
author | rodri <rgl@antares-labs.eu> | 2024-01-06 16:24:51 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-01-06 16:24:51 +0000 |
commit | 97f4b9b97c470501d25ac82cad771bdff75e9b59 (patch) | |
tree | 9c4031842c4af0608219d42a1f143019946d7ee6 | |
parent | 21d0ffbbf001fd209208e33503890ad6847105db (diff) | |
parent | 5a0e28438fe4c0f8cc55430c388c2016cc185cbf (diff) | |
download | brokentoys-97f4b9b97c470501d25ac82cad771bdff75e9b59.tar.gz brokentoys-97f4b9b97c470501d25ac82cad771bdff75e9b59.tar.bz2 brokentoys-97f4b9b97c470501d25ac82cad771bdff75e9b59.zip |
merged
-rw-r--r-- | chansend.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/chansend.c b/chansend.c new file mode 100644 index 0000000..445db42 --- /dev/null +++ b/chansend.c @@ -0,0 +1,40 @@ +#include <u.h> +#include <libc.h> +#include <thread.h> + +void +recvthread(void *arg) +{ + Channel *c = arg; + int n; + + while(recv(c, &n) > 0) + fprint(2, "got %x\n", n); +} + +void +threadmain() +{ + Channel *c; + Alt a[2]; + int n; + + c = chancreate(sizeof(int), 1); + n = 0xB00B5; + + a[0].op = CHANSND; + a[0].c = c; + a[0].v = &n; + a[1].op = CHANEND; + + threadcreate(recvthread, c, mainstacksize); + + for(;;) + switch(alt(a)){ + case -1: + return; + case 0: + fprint(2, "sent %x\n", n); + break; + } +} |