[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to clone a port right
From: |
Sergiu Ivanov |
Subject: |
Re: How to clone a port right |
Date: |
Wed, 8 Jul 2009 17:34:57 +0300 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hello,
On Tue, Jul 07, 2009 at 09:24:27PM +0300, Sergiu Ivanov wrote:
> I tried to set *underlying to MACH_PORT_NULL, but it (in a quite
> expected way) refused to work. I then tried to do
>
> *underlying = underlying_node;
>
> where underlying_node is a port right describing a port to the
> underlying node of the unionfs translator. This led to the following
> error:
>
> unionfs: /var/tmp/hurd-20090404/./libports/complete-deallocate.c:29:
> _ports_complete_deallocate: Assertion `(pi->flags & 0x0001) == 0'
> failed.
> /hurd/filterfs: Translator startup failure: fsys_startup: (ipc/mig)
> server died
The problem was that in the code I was testing this idea I
accidentally included in the #if 0 ... #endif block the whole port
creation port. The error, therefore, appeared not due to reusing a
port right (this would have been strange, anyways), but due to the
fact that I tried to dereference a port that did not exist :-(
I removed the bogus line and it works now.
Thanks for your help!
Regards,
scolobb