Hello
During the last week, I tryed to answer some questions following the comments
sent to this list and from my mentor.
* the checkmbosref crahs was solved, protecting the call inside the read9pmsg()
lock:
qlock(&iormutex);
n = read9pmsg(mfd[0], iodat->mdata, messagesize);
checkmboxrefs();
qunlock(&iormutex);
* Erik suggested trying to avoid any extra locks, as more locks means more
complexity and more problems. I tried to use the lock of the maillist structure
(mbllock), but the way the io() works, makes nupas unusable, as io() waits
for new 9p messages when it has acquired the lock, other fs funtions which
depend on acquiring the lock will wait.
The first try showed how a dowalk() was stalled waiting to lock mbllock, while
io(), which already acquired it, was waiting for the arrival of a new 9p
message in read9pmsg() call. As this wait has an indeterminate duration, the
pending 9p messages being processed were not delivered, resulting in a halt of
the 9p conversation.
* 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.
* 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.
Particulary, mobileme had some problems even with apple tools (apple mail and
the web interface) making apple mail to disconnect the account.
Said that, i'll open a gmail account as it is widely used, and probably better
tested thn the mobileme service.
* in order to speed up the debuging i modified a program contributed by
Christof L. some time ago (gtop) to monitor the state of a process and launch
acid on the selected one.(http://9grid.es/store/gsoc/tests/mon) i did just a
modification to add acid to the menu, and disabled the scroll as seems there is
a bug in that code. Also added an option to specify the proc name, and filter
out the others.
I'll start clearing some confusing things on the code, such as names which
leads to confusion.
The evaluantion has already started, so good luck to everyone.
slds.
gabi
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---