> * Devon pointed out why RWLocks where not used instead of two different 
> qlocks. The first part is that the lock is protecting read and writes for a 
> pipe, i think rwlocks are used when you can read at the same time a variable. 
> Also two locks are needed as there are two resources to protect, (two fd's 
> one for read and one for write). THe use of rwlocks makes nupas hang.

RWLocks have nothing to do with read and write.  rw locks are used
when
there are two different operations on the same resources. the
operation called
"read" can tolerate other concurrent readers.  however the operation
called
"write" must have exclusive access.  for example, in ken's fs, normal
io
operations require a read lock on the fs, but the dump requires a
wlock
on the fs.  any number of clients can do concurrent io unless the fs
is computing
the block that need to be part of the next dump.  once the dump is
computed,
the wlock can be dropped and normal i/o may resume.

> * I've hit some erros like      
>
>         user: gdiaz; note: sys: write on closed pipe pc=0x0002641b
>         user: gdiaz; note: sys: write on closed pipe pc=0x0002641b
>
> with the modified nupas, and the original one. But i've only seen it when 
> using the apple mobileme imap service. I disvered recently that they were 
> updating their service, so i guess, this (and the mtreedelete assert) were 
> due to the maintenance tasks that were being done.

is this failure case properly handled?  if not, it should be.

- erik

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Plan 
9 Google Summer of Code" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/plan9-gsoc?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to