Hi,

this is not so easy to see, esp with all the libports mayhem.

proc_getexecdata just memcpy()s the port array, and then returns.  Will this
do the right thing?  proc is essentially single threaded, by taking a lock
in message_demuxer.  But as it seems to me, the message has not yet actually
been sent when the demuxer releases the lock.

So, suppose a context switch occurs after the lock is released, and then
another message appears and is processed, let this be proc_setexecdata. 
This succeeds, deallocating all previous ports in the standard array.
The numbers we just copied might now become invalidate.  Am I wrong?

Marcus - proofreading proc

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org [EMAIL PROTECTED]
Marcus Brinkmann              GNU    http://www.gnu.org    [EMAIL PROTECTED]
[EMAIL PROTECTED]
http://www.marcus-brinkmann.de

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to