Fighting the good fight.

Move libfmt, libutf into subdirectories of lib9.

Add poll-based socket i/o to libthread, so that we can
avoid using multiple procs when possible, thus removing
dependence on crappy pthreads implementations.

Convert samterm, acme to the single-proc libthread.

Bring libcomplete, acme up-to-date w.r.t. Plan 9 distribution.
This commit is contained in:
rsc 2004-02-29 22:10:26 +00:00
parent d51419bf43
commit 5a8e63b2f0
107 changed files with 665 additions and 6637 deletions

View file

@ -47,7 +47,7 @@ static
void
_ioproc(void *arg)
{
int one;
int fd, one;
ulong mask;
Mouse m;
Mousectl *mc;
@ -60,7 +60,10 @@ _ioproc(void *arg)
mc->pid = getpid();
mask = MouseMask|ExposureMask|StructureNotifyMask;
XSelectInput(_x.mousecon, _x.drawable, mask);
fd = XConnectionNumber(_x.mousecon);
for(;;){
while(XPending(_x.mousecon) == False)
threadfdwait(fd, 'r');
XNextEvent(_x.mousecon, &xevent);
switch(xevent.type){
case Expose:
@ -105,12 +108,13 @@ initmouse(char *file, Image *i)
{
Mousectl *mc;
threadfdwaitsetup();
mc = mallocz(sizeof(Mousectl), 1);
if(i)
mc->display = i->display;
mc->c = chancreate(sizeof(Mouse), 0);
mc->resizec = chancreate(sizeof(int), 2);
proccreate(_ioproc, mc, 16384);
threadcreate(_ioproc, mc, 16384);
return mc;
}