David,

To add fuel, if you look at Solaris close(9E), you will also see that
not only is the close procedure only ever called once, but it is called
with the read queue pointer only.

LiS is clearly doing the wrong thing for Solaris portability, but I would
still split your qinit structures, it is easier that putting all those
checks in the xxx_close procedure.

--brian

On Fri, 10 Oct 2003, David Lehmann wrote:

> David Grothe wrote:
> > David:
> > 
> > I think I see what is going on.  Consider the following lines from the 
> > trace:
> > ...
> > Queues come in pairs.  This loop is examining each queue of the pair and 
> > calling the close routine for whichever queue has a pointer to a close 
> > routine.  Apparently your qinfo structure for your module has a pointer 
> > to the close routine for both the read and write queues.  It is 
> > conventional to only provide open/close routine pointers for the read queue.
> > 
> > I think if you change your qinit structure the problem will go away.
> 
> Maybe so, but this is the same code that Solaris uses.
> My understanding is that close should be called once and only once
> for the queue pair.  Maybe you should take John's suggestion and
> set do_close to zero after executing the close routine once.
> 
> -- 
> 
> David Lehmann                          Ulticom, Inc.
> AOL/Yahoo IM: davidULCM                1020 Briggs Road
> 1-856-787-2729                         Mt. Laurel, NJ 08054   USA
> 
> 
> _______________________________________________
> Linux-streams mailing list
> [EMAIL PROTECTED]
> http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

-- 
Brian F. G. Bidulock    � The reasonable man adapts himself to the �
[EMAIL PROTECTED]    � world; the unreasonable one persists in  �
http://www.openss7.org/ � trying  to adapt the  world  to himself. �
                        � Therefore  all  progress  depends on the �
                        � unreasonable man. -- George Bernard Shaw �

_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to