i'd recommend studying 9pserve.c in plan9port.

On Tue, Feb 2, 2016 at 10:17 AM Tiago Natel <tiago.natel@neoway.com.br> wrote:
2016-02-01 20:03 GMT-02:00 <cinap_lenrek@felloff.net>:
> Is there a reason why lib9p doesn't have a clunk function pointer in Srv struct?

what about Srv.destroyfid()?

          Destroyfid
               When a Fid's reference count drops to zero (i.e., it
               has been clunked and there are no outstanding requests
               referring to it), destroyfid is called to allow the
               program to dispose of the fid->aux pointer.


Thanks for your help! I'd tried using destroyfid to achieve what I need but failed. I tried today again implement with destroyfid but realized that it will not fully support what I need.

I'm using a file server for exchange data between 9P clients. When a new file is created, I create a plan9 channel and two threads (one for handle reads and other for writes), a write(2) to the file is translated into a sendp and a read(2) is translated into a recvp on the channel. The channel could be buffered or not, and then I want to maintain data allocated (aux related data) anyway, because the file server is a queueing system when channel have a buffer bigger than zero.

Apart from that, I want to know how many clients have each file opened to update my stats file. It's possible in any way without a clunk callback?

I'm trying to replace a rabbitmq server with this system, but I have a requirement for some way of monitoring of queues size, performance of channels, number of clients connected to each channel (file on dchan), etc, I need this kind of information for make a comparison with the current queue system...  

Thanks!

--
cinap