async def METHOD_NAME(self):
    if self.nr_started_searches > 0:
        self.nr_started_searches -= 1
    # stop search only when last client stops it
    if self.nr_started_searches == 0:
        if len(self.search_tasks) > 0:
            for task in self.search_tasks:
                task.cancel()
        if self.advertisement_task is not None:
            self.advertisement_task.cancel()
        if self.listener is not None:
            await self.listener.async_stop()
        await self.session.close()