Mixe for Privacy and Anonymity in the Internet
Defines | Functions
CAFirstMixChannelList.cpp File Reference
#include "StdAfx.h"
#include "CAFirstMixChannelList.hpp"
#include "CAUtil.hpp"
#include "CAMsg.hpp"
#include "CAThread.hpp"
#include "CAAccountingInstance.hpp"
Include dependency graph for CAFirstMixChannelList.cpp:

Go to the source code of this file.

Defines

#define MAX_HASH_KEY   8200
#define MAX_NUMBER_OF_CHANNELS   CHANNELS_PER_CLIENT
 The maximum number of channels allowed per connection.

Functions

THREAD_RETURN fml_loopDelayBuckets (void *param)

Define Documentation

#define MAX_HASH_KEY   8200

The maximum number of channels allowed per connection.

Definition at line 224 of file CAFirstMixChannelList.cpp.

Referenced by CAFirstMixChannelList::addChannel().


Function Documentation

Definition at line 1172 of file CAFirstMixChannelList.cpp.

References BEGIN_STACK, FINISH_STACK, INIT_STACK, CAMutex::lock(), CAFirstMixChannelList::m_bDelayBucketsLoopRun, CAFirstMixChannelList::m_pDelayBuckets, CAFirstMixChannelList::m_pMutexDelayChannel, CAFirstMixChannelList::m_u32DelayChannelBucketGrow, CAFirstMixChannelList::m_u32DelayChannelBucketGrowIntervall, MAX_POLLFD, msSleep(), THREAD_RETURN_SUCCESS, and CAMutex::unlock().

    {
      INIT_STACK;
      BEGIN_STACK("CAFirstMixChannelList::fml_loopDelayBuckets");

      CAFirstMixChannelList* pChannelList=(CAFirstMixChannelList*)param;
      volatile UINT32** pDelayBuckets=pChannelList->m_pDelayBuckets;
      while(pChannelList->m_bDelayBucketsLoopRun)
        {
          pChannelList->m_pMutexDelayChannel->lock();
          UINT32 u32BucketGrow=pChannelList->m_u32DelayChannelBucketGrow;
          UINT32 u32MaxBucket=u32BucketGrow*10;
          for(UINT32 i=0;i<MAX_POLLFD;i++)
            {
              if(pDelayBuckets[i]!=NULL&&*(pDelayBuckets[i])<u32MaxBucket)
              {
                *(pDelayBuckets[i])+=u32BucketGrow;
              }
            }
          pChannelList->m_pMutexDelayChannel->unlock();
          msSleep(pChannelList->m_u32DelayChannelBucketGrowIntervall);
        }

      FINISH_STACK("CAFirstMixChannelList::fml_loopDelayBuckets");

      THREAD_RETURN_SUCCESS;
    }

Here is the call graph for this function: