[RFC] Reference counting on Audio objects for /dev/dsp

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Thu Jul 15 20:21:00 GMT 2004

On Thu, Jul 15, 2004 at 02:57:17PM -0400, Igor Pechtchanski wrote:
>> 2) The other problem is that I find it sort of odd to see the dec()
>> method performing a deletion.  Couldn't this be handled where, IMO,
>> it should logically be handled, in the close function, e.g.,
>>   if (!audio_out_->dec ())
>>     delete audio_out_;
>> ?
>Umm, that's actually a rather standard construct in reference counting
>(called "object suicide" -- you should get some references if you Google
>for "object suicide reference counting").

Yes, I thought that would be your answer, however, I don't like the idea
of having a method called "inc" which just increments a count and a method
called "dec" which decrements a count and, oh, hey, it might delete the
object, too.

It seems more straightforward to delete audio_out_ in the place where
you'd expect it to be deleted rather than having a o a "dec" call which,
if you check, you'll notice that it deletes the buffer.

Or, as a compromise, don't call it 'dec'.  Call it something which
illustrates what it is doing.


More information about the Cygwin-patches mailing list