xref: /plan9/sys/src/libthread/chanprint.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <thread.h>
4*9a747e4fSDavid du Colombier 
5*9a747e4fSDavid du Colombier int
chanprint(Channel * c,char * fmt,...)6*9a747e4fSDavid du Colombier chanprint(Channel *c, char *fmt, ...)
7*9a747e4fSDavid du Colombier {
8*9a747e4fSDavid du Colombier 	va_list arg;
9*9a747e4fSDavid du Colombier 	char *p;
10*9a747e4fSDavid du Colombier 	int n;
11*9a747e4fSDavid du Colombier 
12*9a747e4fSDavid du Colombier 	va_start(arg, fmt);
13*9a747e4fSDavid du Colombier 	p = vsmprint(fmt, arg);
14*9a747e4fSDavid du Colombier 	va_end(arg);
15*9a747e4fSDavid du Colombier 	if(p == nil)
16*9a747e4fSDavid du Colombier 		sysfatal("vsmprint failed: %r");
17*9a747e4fSDavid du Colombier 	n = sendp(c, p);
18*9a747e4fSDavid du Colombier 	yield();	/* let recipient handle message immediately */
19*9a747e4fSDavid du Colombier 	return n;
20*9a747e4fSDavid du Colombier }
21