void AsioServerTransport::close()
{
    mAcceptorPtr.reset();
    mStopFlag = true;
    cancelOutstandingIo();
    mpIoService->reset();
    std::size_t items = mpIoService->poll();
    while (items)
    {
        mpIoService->reset();
        items = mpIoService->poll();
    }

    mpIoService = NULL;
    mpServer = NULL;
}
    void AsioServerTransport::close()
    {
        RCF2_TRACE("");

        mAcceptorPtr.reset();
        mCycleTimerPtr.reset();

        mStopFlag = true;
        cancelOutstandingIo();

        mDemuxerPtr->reset();
        std::size_t items = mDemuxerPtr->run();
        while (items)
        {
            mDemuxerPtr->reset();
            items = mDemuxerPtr->run();
        }

        mDemuxerPtr.reset();
    }