My guess is a semaphore for these locks just simply won't cost much but
we have to test it.
A couple of the ideas floating around seem to support the idea of layering
pagg/pnotify on top some how.
I'm honestly confused as to what the best next step is. I think Matt
Helsley's patch that includes per-task and global task notification
has promise but has locking issues even for the per-task pieces (no
protection of the task watcher list per task).
Matt's patch is close to working I think. If he gets a working version
posted, maybe I'll try to write up a pnotify-like-thing for it. I may need
to add list protections to Matt's patch first though. I just don't know :)
On the other hand, Chandra's idea is more simple but some may dislike the
global notification feature (of course, that's present in Matt's patch
too I guess, but in Chandra's, it's the onliy option). Chandra's idea is
to implement pnotify on top of the patch and add pieces to the task struct
for the per-task data. In effect, I believe this means adding a notification
layer. pnotify gets notified and then needs to notify it's users.
Erik
|